You are currently viewing Python | Разница между двумя датами (в минутах) с использованием метода datetime.timedelta()

Python | Разница между двумя датами (в минутах) с использованием метода datetime.timedelta()

Чтобы найти разницу между двумя датами в 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 секунд