Создание объектов 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
сохраняет аргументы, переданные во время его создания. Недели конвертируются в дни, часы и минуты - в секунды, а миллисекунды - в микросекунды.