使用while循环创建日期列表

2024-09-26 18:16:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个日期列表,从2020年9月10日开始,递增182天,直到2020年3月5日

我的代码是:

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)

Tags: 代码列表datedaysstarttimedeltastarlast
2条回答

有几个问题:

  1. 在for循环star_date而不是start_date中出现拼写错误
  2. 此外,您可能希望将比较从!=更改为小于等于或大于等于
  3. 我正在检查(last_date - timedelta(days=182)),这样我们就不会超过最后一天
  4. 原始开始日期在原始结束日期之后
  5. 作为一个例子,我已经将结束日调整为未来几年
  6. 我将日期作为文本追加
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']

我不知道你有什么问题。 你可以试试这个代码

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)

相关问题 更多 >

    热门问题