【问题标题】:Get the list of dates between last Sunday of the week and today获取一周的最后一个星期日和今天之间的日期列表
【发布时间】:2019-11-04 05:24:43
【问题描述】:

我想要一个列表包含一周的最后一个星期日和今天之间的所有日期,比如今天是 05/11/2019,上星期日是 03/11/2019,我想列出 03/11/2019 之间的所有日期今天 05/11/2019

我可以使用下面的代码获得一周的最后一个星期日

from datetime import datetime, timedelta, date

today = date.today()
offset = (today.weekday() - 6) % 7
print("Offset", offset)
last_sunday = today - timedelta(days=offset)
print(last_sunday) 

我想要的输出是

['03/11/2019', '04/11/2019', '05/11/2019']

【问题讨论】:

  • 类似[str(today - timedelta(days=i)) for i in range(offset+1)][::-1]?
  • 你的意思是你总是想得到星期天加上接下来的两天?

标签: python python-3.x datetime


【解决方案1】:

这里。希望对您有所帮助!

from datetime import datetime, timedelta, date

def daterange(date1, date2):
    for n in range(int ((date2 - date1).days)+1):
        yield date1 + timedelta(n)

today = date.today()
offset = (today.weekday() - 6) % 7
print("Offset", offset)
last_sunday = today - timedelta(days=offset)
print(last_sunday)

for dt in daterange(last_sunday, today):
    print(dt.strftime("%Y-%m-%d"))

【讨论】:

    【解决方案2】:

    它具有您指定的输出格式的解决方案。

    from datetime import datetime, timdelta 
    current_date = datetime.now()-timedelta(days=1)
    datetime_list = [current_date-timedelta(days=offset) for offset in range((current_date.weekday()+1)%7+1)]
    datetime_list.reverse()
    datetime_list = [ '{0:02d}/{1:02d}/{2:}'.format(i.day,i.month,i.year) for i in datetime_list]
    print(datetime_list)
    

    【讨论】:

      【解决方案3】:
      from datetime import date, timedelta
      
      sdate = date(2019,11,3)
      today = date.today()
      diff = today - sdate
      for i in range(diff.days+1):
          day = sdate + timedelta(days=i)
          print(day)
      

      【讨论】:

        猜你喜欢
        • 2012-05-06
        • 1970-01-01
        • 1970-01-01
        • 2019-12-29
        • 2023-01-19
        • 2018-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多