Как получить диапазон дат в настоящее время до конца месяца?

1

Я использую datetime, у меня есть:

delta = ((datetime.date.today() + datetime.timedelta(days=1)) - datetime.timedelta(???)).isoformat()

Мне нужно заменить??? с днем до конца месяца.

Как это сделать?

Теги:
python-datetime

3 ответа

3
Лучший ответ
import datetime

d = datetime.date(2013,12,8)

last_day = datetime.date(d.year, (d.month+1)%12, 1) - datetime.timedelta(1,0,0)
5

Чтобы вычислить дату окончания текущего месяца, возьмите первый из текущего месяца, добавьте 1 месяц и вычтите 1 день. Например, на 28 сентября вы получите

1 September + 1 month = 1 October
1 October - 1 day = 30 September.
  • 0
    Но жарко ли это делать с помощью datetime? У меня есть данные формата даты и времени в переменной
0

Чтобы правильно заниматься датами вокруг нового года, я нашел dateutil.relativedelta, чтобы быть лучшей альтернативой.

См. Также Как увеличить месяц datetime в 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)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню