[英]How to set a get the date of the day of the week?
基本上我想要的是在說下周或類似格式后獲得星期幾,盡管我在這里找到了我需要的東西:
但是測試代碼證明,它給出了一些我希望有所不同的答案:
import datetime
def next_weekday(d, weekday):
days_ahead = weekday - d.weekday()
if days_ahead <= 0: # Target day already happened this week
days_ahead += 7
return d + datetime.timedelta(days_ahead)
d = datetime.date(2017, 11, 30)
next_monday = next_weekday(d, 0) # 0 = Monday, 1=Tuesday, 2=Wednesday...
print(next_monday)
它按預期工作,可以正確地為next_weekday(d,0)
,1,2,3給出日期,然后為next_weekday(d,4)
給出日期next_weekday(d,4)
我得到2017-12-01
,我的系統將其解釋為有問題的,因為this friday
等於2017-12-01
,而next friday
相當於2017-12-08
同為周六和周日,所以基本上我想要什么,如果我們尋求星期仍然是在同一個星期給的那一天的日期后一周。
您是否不僅可以總是在days_ahead
添加7, days_ahead
僅在“目標日期已在本周發生”時每次都在下周獲得一天?
import datetime
def next_weekday(d, weekday):
days_ahead = weekday - d.weekday() + 7
return d + datetime.timedelta(days_ahead)
d = datetime.date(2017, 11, 30)
next_friday = next_weekday(d, 4)
print(next_friday) # 2017-12-08 which is next week rather than the friday this week: 2017-12-01
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.