Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为两个日期创建循环_Python_Date_For Loop_Python 2.7 - Fatal编程技术网

Python 为两个日期创建循环

Python 为两个日期创建循环,python,date,for-loop,python-2.7,Python,Date,For Loop,Python 2.7,可能重复: 我有两个条目: date1 = 2004.09.25 date2 = 2004.10.08 我想用Python编写一个脚本,识别日期范围并打印它们。大概是这样的: for i in range(date1:date2): print i date1 = datetime.date(2004, 9, 25) date2 = datetime.date(2004, 10, 8) day = datetime.timedelta(days=1) while date1 &l

可能重复:

我有两个条目:

date1 = 2004.09.25
date2 = 2004.10.08
我想用Python编写一个脚本,识别日期范围并打印它们。大概是这样的:

for i in range(date1:date2):
    print i
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
for i in range((date2 - date1).days + 1):
    print (date1 + datetime.timedelta(days=i)).strftime('%Y.%m.%d')
import datetime

DATE1 = datetime.date(2004,9,25)
DATE2 = datetime.date(2004,10,8)
D1 = datetime.date.toordinal(DATE1)
D2 = (datetime.date.toordinal(DATE2))+1


for i in range(D1,D2):
    print datetime.date.fromordinal(i)
我是否需要为日期定义特定格式的日期? 预期输出如下所示:

2004.09.25
2004.09.26
.
.
.
2004.10.08

您的第一步应该是查看python datetime库

总体而言,您的第一个解决方案可能如下所示:

for i in range(date1:date2):
    print i
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
for i in range((date2 - date1).days + 1):
    print (date1 + datetime.timedelta(days=i)).strftime('%Y.%m.%d')
import datetime

DATE1 = datetime.date(2004,9,25)
DATE2 = datetime.date(2004,10,8)
D1 = datetime.date.toordinal(DATE1)
D2 = (datetime.date.toordinal(DATE2))+1


for i in range(D1,D2):
    print datetime.date.fromordinal(i)
稍后,当您开发python技能时,可能会这样:

for i in range(date1:date2):
    print i
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
for i in range((date2 - date1).days + 1):
    print (date1 + datetime.timedelta(days=i)).strftime('%Y.%m.%d')
import datetime

DATE1 = datetime.date(2004,9,25)
DATE2 = datetime.date(2004,10,8)
D1 = datetime.date.toordinal(DATE1)
D2 = (datetime.date.toordinal(DATE2))+1


for i in range(D1,D2):
    print datetime.date.fromordinal(i)
或者这是我的最终版本:

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')
使用内置模块

首先,将日期(假设它是一个字符串)按每个
拆分,并将列表传递给
datetime.date

date1 = datetime.date(*date1.split('.'))
date2 = datetime.date(*date2.split('.'))
然后获取每个日期的顺序(自0001年1月1日起的天数)

然后,使用
for
循环和
fromordinal
函数将序号转换为日期

for i in range(date1, date2 + 1):
    print date.fromordinal(i).strftime('%Y.%m.%d')
总而言之:

date1 = datetime.date(*date1.split('.')).toordinal()
date2 = datetime.date(*date2.split('.')).toordinal()
for i in range(date1, date2 + 1):
    print date.fromordinal(i).strftime('%Y.%m.%d')

使用序数函数可以得到如下结果:

for i in range(date1:date2):
    print i
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
for i in range((date2 - date1).days + 1):
    print (date1 + datetime.timedelta(days=i)).strftime('%Y.%m.%d')
import datetime

DATE1 = datetime.date(2004,9,25)
DATE2 = datetime.date(2004,10,8)
D1 = datetime.date.toordinal(DATE1)
D2 = (datetime.date.toordinal(DATE2))+1


for i in range(D1,D2):
    print datetime.date.fromordinal(i)

您希望输出结果是什么?请参阅更新的问题。这应该会有所帮助:这是一个完全相同的问题(morphyn的链接问题与此非常接近)。非常感谢。真有见地