Создание объектов timedelta
Вы уже узнали, что объект timedelta может быть возвращен в результате вычитания двух объектов date или datetime.
Конечно, Вы также можете создать объект самостоятельно. Для этого познакомимся с аргументами, принимаемыми конструктором класса, а именно: days, seconds, microseconds, milliseconds, minutes, hours и weeks. Каждый из них является необязательным и по умолчанию равен 0.
Аргументы должны быть целыми числами или числами с плавающей запятой и могут быть как положительными, так и отрицательными. Давайте посмотрим на простой пример в редакторе.
Результат:
16 days, 3:00:00
output
Результат в 16 дней получается путем преобразования аргумента weeks в дни (2 недели = 14 дней) и добавления аргумента days (2 дня). Это нормальное поведение, поскольку объект timedelta хранит внутри себя только дни, секунды и микросекунды. Аналогичным образом аргумент hour преобразуется в минуты. Взгляните на пример ниже:
from datetime import timedelta
delta = timedelta(weeks=2, days=2, hours=3)
print("Days:", delta.days)
print("Seconds:", delta.seconds)
print("Microseconds:", delta.microseconds)
Результат:
Days: 16
Seconds: 10800
Microseconds: 0
output
Результат 10800 получается путем преобразования 3 часов в секунды. Таким образом, объект timedelta сохраняет аргументы, переданные во время его создания. Недели конвертируются в дни, часы и минуты - в секунды, а миллисекунды - в микросекунды.