簡體   English   中英

返回一年中特定日期的前一個月

[英]Return the previous month of a specific date in a year

我有以下代碼用於計算日期的前一個月:

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)

我也嘗試指定年份,但無濟於事。

好吧, datetime.date(1990, 4, 30)的前一個月 3,因此該庫實際上返回datetime.date(1990, 3, 30)是正確的

問題出在問題上-您真正想要的是上個月的最后一天

def get_last_day_of_previous_month(d):
    return d.replace(day=1) - datetime.timedelta(days=1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM