【问题标题】: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】:

      几个问题:

      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)
      

      输出:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-18
        • 2017-12-14
        • 2021-11-13
        • 2021-01-24
        • 1970-01-01
        • 1970-01-01
        • 2012-10-07
        • 2019-10-11
        相关资源
        最近更新 更多