我试图根据函数的4个不同参数生成日期列表,但是所有日期都应该出现在给定时间段(以天为单位)的倍数处
import datetime
def daterecurring(star_date,end_date,period1,period2,period3,period4):
start = datetime.datetime.strptime(star_date, "%d-%m-%Y")
end = datetime.datetime.strptime(end_date, "%d-%m-%Y")
date_generated = [start + datetime.timedelta(days=x) for x in range(0,(end-start).days)]
for date in date_generated:
print(date.strftime("%d-%m-%Y"))
我已经生成了日期列表,但我不知道如何使用参数生成。
我想要这样的输出-->
Example: ParamName Value
Inputs: Start Date 1/1/2018
End Date 5/1/2018
Period1 12
Period2 5
Period3 10
Period4 7
Output: Date Period
1/6/2018 Period2 # start date + 5 days
1/8/2018 Period4 # start date + 7 days
1/11/2018 Period3 # start date + 10 days
1/11/2018 Period2 # start date + 2*5 days
1/13/2018 Period1 # start date + 12 days
1/15/2018 Period4 # start date + 2*7 days
1/21/2018 Period3 # start date + 2*10 days etc.
1/23/2018 Period2
1/25/2018 Period1
1/27/2018 Period4
2/2/2018 Period3
提前谢谢
如果你收集所有的日期,这些日期都是通过给函数加上每个句点的倍数而创建的,并且仍然在给定的日期范围内,那么你可以在dict中收集这些日期。日期是dict的键,值是到达这个日期的“句点”列表(感谢@vash\u the \u stampede-我还没完全明白):
将创建以下输出:
关于你提供的excelsheet,这似乎更有道理
相关问题 更多 >
编程相关推荐