[英]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.