我想使用 datetime
编写一段代码,这样如果 datetime.now()
是星期六或星期五下午 4 点之后,就在星期五过去了。
我已完成以下内容:
from datetime import datetime
datenow = datetime.now()
if datenow.isoweekday() == 6 or (datenow.isoweekday() in [5] and datenow.hour >=16):
## change datenow to the passing friday at 4pm.
有人可以帮帮我吗?
最佳答案
完整解决方案:
def set_prev_iso_week_day(val, iso_week_day):
"""
Set ISO week day.
New date will be less or equal than input date.
:param val: datetime or date
:type val: datetime.datetime | datetime.date
:param iso_week_day: ISO week day to set
:type iso_week_day: int
:return: datetime.datetime | datetime.date
"""
if val.isoweekday() == iso_week_day:
return val
diff = iso_week_day - val.isoweekday()
diff = -diff if diff < 0 else 7 - diff
val -= timedelta(days=diff)
return val
datenow = set_prev_iso_week_day(datenow, 5).replace(hour=16,minute=0,second=0,microsecond=0)
或者使用我的库 t77_date并使用:
from t77_date.constants import ISO_FRIDAY
from t77_date.datetime import set_prev_iso_week_day
datenow = set_prev_iso_week_day(datenow, ISO_FRIDAY).replace(hour=16,minute=0,second=0,microsecond=0)
关于python - 如何使用基于星期几的日期时间创建日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38157292/