Программное обеспечение для обратного отсчета, таймеров и будильников с очень специфическими функциями.

Вопрос или проблема

Ищу следующие функции или помощь в их создании самостоятельно, в как можно меньшем количестве отдельных программ.

ОС: Windows 10.
Android также был бы интересен, но строго опционально, или (нежелательно и как крайний вариант): в качестве альтернативы.


Желаемые функции:

(Не в порядке приоритета, это будет позже)

Основные:

  1. Будильник:
    • Несколько будильников
    • Функция повтора (Ежедневно, Еженедельно, Рабочие дни, Четверги и т.д.)
  2. Обратный отсчет: Вы задаете либо

      a) период (например, 4 часа), или  
      b) дедлайн (время на часах И/ИЛИ дата) <-- Может быть продолжением функции "Будильник".
    

    …и он постоянно показывает, сколько осталось дней, часов, минут, секунд до достижения 00:00:00

    • Несколько обратных отсчетов (я хочу, чтобы несколько работали одновременно)
  3. Таймеры/Секундомеры: Вы нажимаете кнопку, и он начинает считать время, которое прошло.
    • Несколько таймеров, работающих одновременно

Другие:

  • ФУНКЦИИ СТСРАНЕНИЯ / ЖУРНАЛИРОВАНИЯ: Я хочу, чтобы приложение вело журнал:
    • Таймеров особенно (Будильник – это само собой разумеется):
      • Время/дата начала: Когда я запустил таймер
      • Затраченное время: Продолжительность до остановки таймера
      • Название: Я хочу иметь возможность назвать свой таймер, особенно если у вас будет несколько работающих таймеров
    • Если обратный отсчет должен иметь дедлайн на более позднюю дату, очевидно, он должен сохранять эту дату, чтобы отсчет смог пережить перезагрузку ПК и/или приложения.
  • ВСЕГДА ВИДИМЫЙ СТАТУС ТАЙМЕРА:
    Например, статус таймера постоянно отображается на КНОПКЕ ЗАДАЧНОЙ СТРОКИ, или (более раздражающе) в минималистичном окне “всегда сверху” с прозрачностью.

Приоритет:

Это фантазия получить все эти функции в одной программе, я думаю, поэтому мои основные приоритеты, в порядке, таковы:

  • Обратный отсчет и таймер, “Всегда видимый”
  • Несколько из каждого одновременно
  • (Срочно, но мне бы очень хотелось): Запись хотя бы времени начала каждого активного таймера

Итог: Его нет. Просто пропустите то, что ниже этой строки


ПРИМЕЧАНИЕ: У меня есть крайне базовые знания Python, которые я приобрел за несколько дней, и всего лишь достаточно, чтобы создать скрипт, помогающий мне импортировать конкретную информацию из онлайн-словаря в электронную таблицу Excel. Так что если это что-то, что я могу легко создать сам, меня устраивают некоторые указания о том, как научить себя это делать (= ссылка на модули, которые мне понадобятся, и я пойму, как заставить их работать).


В настоящее время я использую приложение chrome под названием Timer Tab.

Преимущества:

  • Выполняет Обратный отсчет, Будильник и Таймер/Секундомер
  • Продолжает работать (считать), если закрыт браузер Chrome или даже окно самого приложения
  • Статус Обратного отсчета/Таймера виден в Панели задач

Недостатки:

  • Может работать только с одной из трех функций одновременно
  • Удивительно, но он позволяет указать только онлайн-ссылку на видео на YouTube в качестве звука будильника
  • Никаких других функций, о которых я упоминал

Я бы настоятельно предложил рассмотреть возможность реализации этого на Python с использованием библиотеки wxPython для графических элементов. wxPython – это библиотечная оболочка Python для библиотеки GUI на C++, обе они бесплатны, открыты и кросс-платформенные.

Обратите внимание, что если вы используете Python 2.7, вам нужны загрузки отсюда, но для Python 3.5 вам придется использовать проект wxPython Phoenix.

Обязательно установите и попробуйте wxPython Docs & Demos, особенно демонстрации – они показывают, что вы можете сделать с этой библиотекой. Для Python 2.7 это доступно на главной странице загрузки, но для Python 3.x & phoenix вам нужно будет загрузить с github.

Для вычислений даты/времени и временных интервалов ознакомьтесь с встроенными классами python datetime.datetime и datetime.timedelta.

Я бы предложил хранить информацию о начале/остановке/продолжительности в формате ini файла или json, существуют встроенные библиотеки для обоих, но вы также можете рассмотреть возможность использования pickle для сохранения информации.

Ответ или решение

Программное обеспечение для обратного отсчета, таймера и будильника: Точные характеристики и рекомендации по реализации

С учетом ваших требований к программному обеспечению для Windows 10 (второстепенно для Android), вы ищете решение, которое объединяет функции будильника, обратного отсчета и таймера в одном или нескольких приложениях. Давайте подробно рассмотрим желаемые возможности и шаги, которые помогут вам реализовать ваше собственное решение с использованием Python и библиотеки wxPython.

Основные функции

  1. Будильник

    • Нужно поддерживать работу с несколькими будильниками одновременно.
    • Необходимо реализовать функцию повторного срабатывания (ежедневно, еженедельно, по рабочим дням и т.д.).
  2. Обратный отсчет

    • Возможность установить отсчет по периоду (например, 4 часа) или по сроку (время и/или дата).
    • Должен отображаться оставшийся промежуток времени: дни, часы, минуты, секунды.
    • Обеспечение работы нескольких обратных отсчетов одновременно.
  3. Таймер/Секундомер

    • Простое нажатие кнопки должно запускать отсчет времени.
    • Поддержка нескольких таймеров.

Дополнительные функции

  • Функции сохранения и ведения журнала

    • Логирование таймеров, включая стартовое время/дату, длительность и возможность именования.
    • В случае установки обратного отсчета на конкретную дату, необходимо сохранить эту дату, чтобы она "пережила" перезагрузку ПК или приложения.
  • Статус таймера всегда на виду

    • Статус таймера может отображаться в кнопке в панели задач или в минималистичном окне сверху, с возможностью настройки прозрачности.

Приоритеты

  1. Обратный отсчет и таймер с функцией "всегда видимость".
  2. Поддержка нескольких таймеров и отсчетов одновременно.
  3. Логирование, особенно времени начала каждого активного таймера.

Реализация на Python с использованием wxPython

Установка окружения

Чтобы начать, вам потребуются:

  • Python (рекомендуется последняя стабильная версия).
  • Установите wxPython, используя pip:

    pip install wxPython

Основные компоненты кода

  1. Создание GUI

    Ознакомьтесь с документацией wxPython, чтобы понять, как создавать интерфейсы.

    import wx
    
    class TimerApp(wx.App):
       def OnInit(self):
           frame = wx.Frame(None, title='Таймер и Будильник')
           panel = wx.Panel(frame)
           # Здесь добавьте элементы управления (кнопки, текстовые поля и т.д.)
           frame.Show()
           return True
    
    app = TimerApp()
    app.MainLoop()
  2. Работа с временем

    Используйте datetime для работы с временем:

    from datetime import datetime, timedelta
    
    # Получить текущее время
    now = datetime.now()
    # Установить отсчет в 4 часа
    countdown_end = now + timedelta(hours=4)
  3. Логирование данных

    Вы можете использовать JSON для хранения данных:

    import json
    
    data = {'timers': [{'name': 'Таймер 1', 'start_time': str(now), 'duration': '4h'}]}
    with open('timers.json', 'w') as f:
       json.dump(data, f)

Заключение

С учетом всех вышеперечисленных функций и возможностей, вы можете создать приложение для таймера, будильника и обратного отсчета, подходящее под ваши специфические нужды, с использованием Python и wxPython. Такой подход позволит вам сохранить гибкость в дальнейшем развитии приложения и расширении его функциональности. Не бойтесь экспериментировать с кодом, изучать новые технологии и обучаться на практике — это принесет вам не только опыт, но и удовольствие от реализации ваших идей.

Оцените материал
Добавить комментарий

Капча загружается...