Чтобы найти разницу между двумя датами в Python, можно использовать класс timedelta, который присутствует в библиотеке datetime. Класс timedelta хранит разницу между двумя объектами datetime.
Чтобы найти разницу между двумя датами в виде минут, можно использовать атрибут секунды объекта timedelta, который можно дополнительно разделить на 60 для преобразования в минуты.
Пример 1.
Следующая программа берет два объекта datetime и находит разницу между ними в минутах.
import datetime
# datetime(year, month, day, hour, minute, second)
a = datetime.datetime(2017, 6, 21, 18, 25, 30)
b = datetime.datetime(2017, 5, 16, 8, 21, 10)
# returns a timedelta object
c = a-b
print('Difference: ', c)
minutes = c.total_seconds() / 60
print('Total difference in minutes: ', minutes)
# returns the difference of the time of the day
minutes = c.seconds / 60
print('Difference in minutes: ', minutes)
Выход:
Разница: 36 дней, 10:04:20
Разница в минутах: 604.3333333333334
Пример 2:
Для получения более подходящего ответа можно использовать divmod (), который вернет дробную часть минут в секундах:
import datetime
# datetime(year, month, day, hour, minute, second)
a = datetime.datetime(2017, 6, 21, 18, 25, 30)
b = datetime.datetime(2017, 5, 16, 8, 21, 10)
# returns a timedelta object
c = a-b
print('Difference: ', c)
# returns (minutes, seconds)
minutes = divmod(c.total_seconds(), 60)
print('Total difference in minutes: ', minutes[0], 'minutes',
minutes[1], 'seconds')
# returns the difference of the time of the day (minutes, seconds)
minutes = divmod(c.seconds, 60)
print('Total difference in minutes: ', minutes[0], 'minutes',
minutes[1], 'seconds')
Выход:
Разница: 36 дней, 10:04:20
Разница в минутах: 604 минуты 20 секунд