Я использую datetime, у меня есть:
delta = ((datetime.date.today() + datetime.timedelta(days=1)) - datetime.timedelta(???)).isoformat()
Мне нужно заменить ???со дня до конца месяца.
Как это сделать?
Чтобы вычислить дату конца текущего месяца, возьмите первое число текущего месяца, добавьте 1 месяц и вычтите 1 день. Например, 28 сентября вы получите
1 September + 1 month = 1 October 1 October - 1 day = 30 September.
import datetime d = datetime.date(2013,12,8) last_day = datetime.date(d.year, (d.month+1)%12, 1) - datetime.timedelta(1,0,0)
Чтобы правильно разобраться с датами в новом году, я нашел dateutil.relativedelta лучшей альтернативой.
См. Также Как увеличить дату и время месяца в Python .
import datetime from dateutil.relativedelta import relativedelta d = datetime.date(2013,12,8) last_day = datetime.date(d.year, d.month, 1)+relativedelta(months=1, days=-1)