Python Glossary English

все Python 3datetimeпонятие

date арифметика

date

Вычитание дат даёт timedelta. Прибавление timedelta даёт новую дату.

Синтаксис

d1 - d2
d + timedelta(days=n)

У timedelta нет месяцев и лет — только дни, секунды и микросекунды, поэтому «прибавить месяц» так не выражается: считайте через calendar.monthrange() и replace() или берите стороннюю библиотеку. К date прибавляется только timedelta, но не число: date + 1 даёт TypeError. Разность двух дат — всегда целое число суток в diff.days, без сюрпризов с часовыми поясами и переводом времени, которые бывают у datetime.

Примеры

from datetime import date, timedelta
d1 = date(2024, 12, 31)
d2 = date(2024, 1, 1)
diff = d1 - d2
print(diff.days)  # → 365
d3 = date.today() + timedelta(days=7)
print(d3)  # → через неделю
print(date(2024,3,1) > date(2024,1,1))  # → True
print(date.fromisoformat('2024-12-25') - date.today())

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности