我想在下個月的最后一個星期四和下個月的下一個星期四獲得日期。目前能夠獲取當月最后一個星期四的日期。
代碼:
import datetime
dt = datetime.datetime.today()
def lastThurs_currentmonth(dt):
currDate, currMth, currYr = dt, dt.month, dt.year
for i in range(31):
if currDate.month == currMth and currDate.year == currYr and currDate.weekday() == 3:
#print('dt:' str(currDate))
lastThuDate = currDate
currDate = datetime.timedelta(1)
return lastThuDate
lastThurs_currentmonth(dt)
輸出:
datetime.datetime(2022, 11, 24, 11, 2, 17, 620842)
現在我需要在下個月和下個月的上周四約會。
預期輸出:
下個月上周四的日期
datetime.datetime(2022, 12, 29)
上周四為下個月下個月的日期
datetime.datetime(2023, 1, 26)
參考鏈接: 使用 python 獲取當月的最后一個星期四
uj5u.com熱心網友回復:
一種方法是從當月開始時將月數減去一天,然后再減去最后一個星期四。星期四是 isoweekday 4,所以這是減去正確天數的情況。不幸timedelta的是不允許幾個月,所以dateutil我的解決方案也需要這個庫。
import datetime
from dateutil.relativedelta import relativedelta
def last_thrs(start_date, months):
date_to_check = datetime.date(start_date.year, start_date.month, 1) relativedelta(months=months 1) - datetime.timedelta(days=1)
return date_to_check - datetime.timedelta(days = ((date_to_check.isoweekday() 3) % 7))
dt_today = datetime.date.today()
print(last_thrs(dt_today, 1))
# 2022-12-29
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/537297.html
標籤:Python约会时间
