Fra*_*ash 4 python datetime python-dateutil
按照这个答案,我试图获取当月最后一个星期四的日期。但是我的代码没有跳出循环。
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()
Run Code Online (Sandbox Code Playgroud)
查看文档 relativedelta
请注意,如果计算出的日期已经是
Monday,例如,使用(0, 1)或(0, -1)不会更改日期。
如果nthu已经是星期四,则添加TH(1)或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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5712 次 |
| 最近记录: |