在下面的代碼中,從月份和年份,需要當月的第一個和最后一個日期
前月 =3 年 = 2022
first_date = 2021-03-01 00:00:00
last_date = 2021-03-31 00:00:00
我嘗試使用日歷,但它只是回傳 (1 ,31)
import calendar
month =3
year= 2022
print( calendar.monthrange(2002, 1))
uj5u.com熱心網友回復:
從 monthrange() 您將獲得該月的第一天和天數。您可以使用 datetime 方法將其轉換為日期。
month =3
year= 2022
first, last = calendar.monthrange(year, month)
print(first, last)
print(datetime.datetime(year, month, 1))
print(datetime.datetime(year, month, last))
uj5u.com熱心網友回復:
您可以撰寫自己的函式來計算該月的最后一天:
def last_day_of_month(date):
if date.month == 12:
return date.replace(day=31)
return date.replace(month=date.month 1, day=1) - datetime.timedelta(days=1)
所以:
>>> last_day_of_month(datetime.date(2021, 3, 19))
datetime.date(2021, 3, 31)
同樣,我們可以在第一次約會時使用單行:
(dt.replace(day=1) datetime.timedelta(days=32)).replace(day=1)
所以:
dt = datetime.datetime(2021, 3, 19)
print((dt.replace(day=1) datetime.timedelta(days=32)).replace(day=1))
>>> 2021-03-01 00:00:00
uj5u.com熱心網友回復:
你可以使用datetime模塊來做到這一點
import datetime
def get_last_day_of_month(day):
next_month = day.replace(day=28) datetime.timedelta(days=4)
return next_month - datetime.timedelta(days=next_month.day)
輸出將是:
for month in range(1, 13):
print(get_last_day_of_month(datetime.date(2020, month, 1)))
2020-01-31
2020-02-29
2020-03-31
2020-04-30
2020-05-31
2020-06-30
2020-07-31
2020-08-31
2020-09-30
2020-10-31
2020-11-30
2020-12-31
第一天你可以把這一天總是 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/399340.html
