все 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Сообщить о неточности