【问题标题】:create a list of dates with a while loop python使用while循环python创建日期列表
【发布时间】:2021-05-25 07:46:23
【问题描述】:
我想创建一个从 2020 年 10 月 9 日开始的日期列表,增量为 182 天,直到 2020 年 5 月 3 日。
我的代码是这样的:
start_date="10/09/2020"
last_date="05/03/2020"
start_date=datetimedatetime.strptime(date,"%d/%m/%Y").date()
last_date=datetimedatetime.strptime(date,"%d/%m/%Y").date()
dates=[]
while dates[-1] != last_date:
i=star_date+timedelta(days=182)
dates.append(i)
dates[i]=i+timedelta(days=pago_cupon)
【问题讨论】:
标签:
python
list
date
while-loop
【解决方案1】:
我不知道你有什么问题。
你可以试试这个代码
from datetime import date, timedelta
start_day = date(year=2020, month=9, day=10)
end_day = date(year=2021, month=3, day=5)
one_data_delta = timedelta(days=1)
res = []
while end_day != start_day:
start_day += one_data_delta
res.append(start_day)
print(res)
【解决方案2】:
几个问题:
- 您的 for 循环
star_date 而不是 start_date 中有拼写错误。
- 此外,您可能希望将比较从
!= 更改为小于等于或大于等于。
- 我正在检查
(last_date - timedelta(days=182)),这样我们就不会超过 last_date。
- 您原来的开始日期晚于原来的结束日期。
- 例如,我已将结束日期调整为几年后。
- 我将日期附加为文本。
from datetime import datetime, timedelta
start="10/09/2020"
last="05/03/2022"
start_date=datetime.strptime(start,"%d/%m/%Y")
last_date=datetime.strptime(last,"%d/%m/%Y")
dates=[]
while start_date <= (last_date - timedelta(days=182)):
start_date += timedelta(days=182)
dates.append(start_date.strftime("%d/%m/%Y"))
# not quite sure what you are trying to do here:
#dates[i]=i+timedelta(days=pago_cupon)
print(dates)
输出:
['11/03/2021', '09/09/2021']