Возврат предыдущего месяца определенной даты в году - PullRequest
0 голосов
/ 12 июня 2018

У меня есть следующий код, который я использовал для вычисления предыдущего месяца даты:

from dateutil import parser, relativedelta
import datetime

@staticmethod
def get_previous_month(date):
    previous_month = date - relativedelta.relativedelta(months=1)
    return previous_month

Я думал, что это сработало, но я не думаю, что учитывается год.

Я передаю объекты даты и времени в качестве аргумента.

Для datetime.date(1990, 4, 30) предыдущий месяц должен быть:

datetime.date(1990, 3, 31), но возвращается:

datetime.date(1990, 3, 30)

Я также пытался указать годно безрезультатно.

1 Ответ

0 голосов
/ 12 июня 2018

Ну, предыдущий месяц datetime.date(1990, 4, 30) IS 3, поэтому библиотека на самом деле правильная , возвращающая datetime.date(1990, 3, 30).

Проблема в том, что вы действительно хотите последний день предыдущего месяца .

def get_last_day_of_previous_month(d):
    return d.replace(day=1) - datetime.timedelta(days=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...