datetime.timedelta examples
В этом разделе представлены частые приемы работы длительностью или интервалом времени datetime.timedelta(), а так же арифметика c datetime.timedelta.
Примеры арифметики c datetime.timedelta():
datetime.timedelta():>>> from datetime import timedelta
>>> year = timedelta(days=365)
>>> ten_years = 10 * year
>>> ten_years
# datetime.timedelta(days=3650)
>>> ten_years.days
# 3650
>>> ten_years.days // 365
# 10
>>> nine_years = ten_years - year
>>> nine_years
# datetime.timedelta(days=3285)
>>> three_years = nine_years // 3
>>> three_years, three_years.days // 365
# (datetime.timedelta(days=1095), 3)Преобразование интервала datetime.timedelta() в секунды:
datetime.timedelta() в секунды:>>> import datetime
>>> delta = datetime.timedelta(minutes=1)
>>> delta.total_seconds()
# 60.0
>>> delta = datetime.timedelta(hours=1, minutes=1)
>>> delta.total_seconds()
# 3660.0
>>> delta = datetime.timedelta(days=1, hours=1, minutes=1)
>>> delta.total_seconds()
# 90060.0
>>> delta = datetime.timedelta(weeks=3, days=5)
>>> delta.total_seconds()
# 2246400.0
# Интервал между датами
>>> date1 = datetime.datetime.now()
>>> date2 = datetime.datetime(2021, 1, 1)
>>> delta = date2 - date1
>>> delta.total_seconds()
# 20662333.983181Форматирование вывода интервала времени datetime.timedelta().
datetime.timedelta().Для объектов datetime.timedelta нет встроенного средства форматирования, но это довольно легко сделать самостоятельно:
Узнаем сколько прошло времени с события.
Узнаем сколько осталось времени до события.
Пример подсчета дней до события.
При помощи datetime.datetime.
При помощи datetime.date.
Подсчет прошедших и предстоящих дат.
Узнаем дату "дня программиста". Как известно, день программиста приходится на 256 день в году.
Узнаем, какая дата будет через 3 недели и 5 дней.
Узнаем, какая дата была 100 дней назад.
Узнаем, какое время будет через 1 час 30 минут и 45 секунд.
Использование месяца, при расчете интервала timedelta.
timedelta.В конструкторе объекта datetime.timedelta() нет аргумента, отвечающего за месяц, следовательно его надо рассчитывать. Как тогда точно рассчитать количество дней в нескольких месяцах, если количество дней в месяцах разное? А если расчеты выпадут на февраль и да еще год високосный?
Для подсчета дней в месяцах можно воспользоваться функцией calendar.monthrange() встроенного модуля calendar. Рассчитаем дату, которая будет через 3 месяца и 6 дней от текущей:
Last updated