Задать вопрос
@s1vemod

Как правильно посчитать разницу во времени?

Добрый день, написал такую функцию:
def check_difference_time(start, end):
  FMT = '%H:%M'
  tdelta = datetime.strptime(end, FMT) - datetime.strptime(start, FMT)
  return tdelta >= timedelta(hours=1, minutes=30)


Где, start и end - два времени. Например - "13:00" и "14:30"
Данная функция проверяет, если ли между ними 1.5 часа.

Но если я передаю "22:00" и "01:30", то он выдаёт False, если посмотреть на tdelta, то она:
-1 day, 3:00:00

Полагаю, проблема в -1 day, как я могу этого избежать и красиво решить эту задачу?

Данный код проверяет, есть ли разница в полтора часа, но надо ещё учесть, что:
"23:30" и "00:30" -> False. Да, день другой, но разницы в полтора часа нет.
"23:00" и "00:30" -> True.

Заранее благодарю.
  • Вопрос задан
  • 65 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
Насчёт красиво не знаю, но вот чего мне удалось добиться
from datetime import datetime

FMT = '%H:%M'
print((datetime.strptime("01:30", FMT) - datetime.strptime("22:00", FMT)).seconds)  # => 12600 - это правильно

Можно сравнивать с секундами так же
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы