为两个日期创建循环[重复]

2024-02-17

可能的重复:
在 Python 中迭代一系列日期 https://stackoverflow.com/questions/1060279/iterating-through-a-range-of-dates-in-python

我有两个条目:

date1 = 2004.09.25
date2 = 2004.10.08

我想用 Python 编写一个脚本来识别日期范围并打印它们。像这样的东西:

for i in range(date1:date2):
    print i

我是否需要以特定格式定义日期? 预期输出如下:

2004.09.25
2004.09.26
.
.
.
2004.10.08

您的第一步应该是查看 python 日期时间库。

总的来说,您的第一个解决方案可能如下所示:

date1 = datetime.date(2004, 9, 25)
date2 = datetime.date(2004, 10, 8)
day = datetime.timedelta(days=1)

while date1 <= date2:
    print date1.strftime('%Y.%m.%d')
    date1 = date1 + day

(需要注意的一件事:这显然会破坏你的date1多变的)

我稍后会将其重构为日期范围函数,以便您可以做一些更接近您所做的事情;它看起来像

for d in daterange(date1, date2):
    print d.strftime('%Y.%m.%d')

稍后,当你发展你的Python技能时,它可能会像这样:

for i in range((date2 - date1).days + 1):
    print (date1 + datetime.timedelta(days=i)).strftime('%Y.%m.%d')

或者这将是我的最终版本:

def daterange(d1, d2):
    return (d1 + datetime.timedelta(days=i) for i in range((d2 - d1).days + 1))

for d in daterange(date1, date2):
    print d.strftime('%Y.%m.%d')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为两个日期创建循环[重复] 的相关文章

随机推荐