如何解决使用时间增量迭代时跳过周日期
from datetime import datetime,timedelta
today = datetime.today() #datetime type
n = today.weekday() #integer type
if(n == 5 or n == 6):
if(n == 5):
Monday = today + timedelta(days = 2)
else:
Monday = today + timedelta(days = 1)
else:
Monday = today - timedelta(n)
Friday = Monday + timedelta(days = 4)
this = [0,1,2]
for a in this:
Monday = Monday + timedelta(weeks = a)
Friday = Friday + timedelta(weeks = a) #find out why it skips weeks
print(Monday)
print(Friday)
解决方法
考虑 org.apache.nifi.processors.poi.ConvertExcelToCSVProcessor.error
IOException thrown from ConvertExcelToCSVProcessor[id=a0aa3e82-1d3c-18c0-b1a7-b9d4429d5958]:
等于每个循环以及 a
会做什么。它会跳过,因为您在第一次传递时将星期一和星期五变量增加 0 周,第二次传递增加 1 周,然后第三次传递 2 周。
每次通过仅增加 1 周。还修复/简化了不会在原始代码中打印任何内容的周六/周日测试。
+ timedelta(weeks = a)
输出:
from datetime import datetime,timedelta
today = datetime.today()
n = today.weekday() # Monday = 0,Sunday = 6
if n > 4: # Saturday or Sunday advance to next Monday
Monday = today + timedelta(days = 7-n)
else: # else go back to current week Monday
Monday = today - timedelta(n)
Friday = Monday + timedelta(days = 4)
for _ in range(5):
print(f'{Monday:%Y-%m-%d} to {Friday:%Y-%m-%d}')
Monday += timedelta(weeks = 1)
Friday += timedelta(weeks = 1)
,
from datetime import datetime,timedelta
today = datetime.today()
next_monday = today + timedelta(days=((0 - today.weekday()) % 7)) # 0 is monday
for i in [0,1,2]:
print(*[f'{next_monday + timedelta(weeks=i,days=d):%Y-%m-%d}' for d in [0,4]],sep='\n')
输出
2021-06-28
2021-07-02
2021-07-05
2021-07-09
2021-07-12
2021-07-16
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。