按照此answer我试图获取本月最后一个星期四的日期。但我的代码没有脱离循环。
from datetime import datetime
from dateutil.relativedelta import relativedelta, TH
todayte = datetime.today()
cmon = todayte.month
nthu = todayte
while nthu.month == cmon:
nthu += relativedelta(weekday=TH(1))
#print nthu.strftime('%d%b%Y').upper()
查看文档relativedelta
请注意,如果计算的日期已经是Monday
,例如,使用(0, 1)
or (0, -1)
不会改变这一天。
If nthu
已经是星期四然后添加TH(1)
or TH(-1)
不会有任何效果,但会产生相同的日期,这就是循环无限运行的原因。
我假设一个月最多 5 周,并按如下方式执行:
todayte = datetime.today()
cmon = todayte.month
for i in range(1, 6):
t = todayte + relativedelta(weekday=TH(i))
if t.month != cmon:
# since t is exceeded we need last one which we can get by subtracting -2 since it is already a Thursday.
t = t + relativedelta(weekday=TH(-2))
break
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)