加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在上周,本周和下周构建日期数组

发布时间:2020-12-20 11:28:17 所属栏目:Python 来源:网络整理
导读:我经常在 Python中关注日期.在我的网络应用程序中,我希望每天显示三个星期的日历:上周,当前周和下一周,星期一表示一周的开始. 我目前接近这个的方式是逐步回顾日期,直到我击中星期一,然后再减去7天然后加20来建立三周的范围……但这感觉真的很笨重. Python
我经常在 Python中关注日期.在我的网络应用程序中,我希望每天显示三个星期的日历:上周,当前周和下一周,星期一表示一周的开始.

我目前接近这个的方式是逐步回顾日期,直到我击中星期一,然后再减去7天然后加20来建立三周的范围……但这感觉真的很笨重.

Python有几个星期的概念,还是我必须手动躲避它几天?

编辑:现在我把它编码出来,它并不太可怕,但我确实想知道是否有一些稍微好一点的东西,再次用几周而不是几天的概念.

today = datetime.date.today()
last_monday = today - datetime.timedelta(days=today.weekday()) - datetime.timedelta(days=7)
dates = [last_monday + datetime.timedelta(days=i) for i in range(0,21)]

解决方法

不,这就是它.但基于 datetime.date.weekday()结果的列表理解应该很容易:

today = datetime.date(2013,06,26)
dates = [today + datetime.timedelta(days=i) for i in range(-7 - today.weekday(),14 - today.weekday())]

请记住,范围不必从0开始.:-)

演示:

>>> import datetime
>>> from pprint import pprint
>>> today = datetime.date(2013,07,12)
>>> pprint([today + datetime.timedelta(days=i) for i in range(-7 - today.weekday(),14 - today.weekday())])
[datetime.date(2013,7,1),datetime.date(2013,2),3),4),5),6),7),8),9),10),11),12),13),14),15),16),17),18),19),20),21)]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读