Таймер в телеграм боте. Pytelegrambotapi
Пишу реализацию бота где, пользователь задаёт время, например 1 или 2 часа и, допустим по команде /status получает остаток времени в формате чч:мм. Использую библиотеку pytelegrambotapi.
Ответы (1 шт):
Автор решения: nomnoms12
→ Ссылка
В простейшем случае Вам подойдёт модуль datetime.
Получите от пользователя задержку для таймера. Создайте на её основе объект timedelta и добавьте к текущему времени. По запросу вычтите из полученной даты текущее время и выведите разницу в нужном формате.
Пример:
from datetime import datetime, timedelta
d = {'hours': 2}
end = datetime.now() + timedelta(**d)
# 1.5 hours later
curr = datetime.now()
diff = int((end - curr).total_seconds())
if diff > 0:
hours, remainder = divmod(diff, 3600)
minutes, seconds = divmod(remainder, 60)
else:
hours = 0
minutes = 0
print(f'{hours:02}:{minutes:02}')
stdout:
00:30