f.a*_*uri 4 python for-loop date python-2.7
可能重复:
迭代Python中的一系列日期
我有两个条目:
date1 = 2004.09.25
date2 = 2004.10.08
Run Code Online (Sandbox Code Playgroud)
我想在Python中编写一个脚本来识别日期范围并打印它们.这样的事情:
for i in range(date1:date2):
print i
Run Code Online (Sandbox Code Playgroud)
我是否需要以特定格式定义日期的日期?预期的输出如下:
2004.09.25
2004.09.26
.
.
.
2004.10.08
Run Code Online (Sandbox Code Playgroud)
for*_*all 17
你的第一步应该是查看python datetime库.
总的来说,您的第一个解决方案可能如下所示:
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
Run Code Online (Sandbox Code Playgroud)
(有一点需要注意:这显然会破坏你的date1
变量)
我稍后会将其重构为日期范围函数,以便您可以更接近您所做的事情; 看起来像
for d in daterange(date1, date2):
print d.strftime('%Y.%m.%d')
Run Code Online (Sandbox Code Playgroud)
后来,当你开发你的python技能时,它可能是这样的:
for i in range((date2 - date1).days + 1):
print (date1 + datetime.timedelta(days=i)).strftime('%Y.%m.%d')
Run Code Online (Sandbox Code Playgroud)
或者这,这将是我的最终版本:
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')
Run Code Online (Sandbox Code Playgroud)