簡體   English   中英

使用 while 循環創建日期列表 python

[英]create a list of dates with a while loop python

我想創建一個從 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)

我不知道你有什么問題。 你可以試試這段代碼

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)

幾個問題:

  1. 您在 for 循環star_date而不是start_date中有拼寫錯誤。
  2. 此外,您可能希望將比較從!=更改為小於等於或大於等於。
  3. 我正在檢查(last_date - timedelta(days=182)) ,這樣我們就不會超過 last_date。
  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)

Output:

['11/03/2021', '09/09/2021']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM