datetime.datetime + timedelta(days=5) 返回 None
datetime.datetime + timedelta(days=5) is returning None
startdate = dt.strptime('13/12/2020', '%d/%m/%Y')
enddate = dt.strptime('4/12/2020', '%d/%m/%Y')
interval = 5
print('startdate', startdate)
print('enddate', enddate)
loop_startdate = startdate
loop_endate = None
for _ in range((diff//interval) + 1):
print(_, loop_startdate)
loop_enddate = loop_startdate + timedelta(days=interval)
print('loop_enddate', loop_endate)
if loop_enddate > enddate:
loop_enddate = enddate
loop_startdate = loop_endate
startdate
和 enddate
是 datetime.datetime
个实例。我打印了 'startdate' 和 enddate
结果如下。
startdate 2020-12-04 00:00:00
enddate 2020-12-13 00:00:00
0 2020-12-04 00:00:00
loop_enddate None
1 None
Traceback (most recent call last):
File "pythonfilepathhere", line 81, in <module>
loop_enddate = loop_startdate + timedelta(days=interval)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'datetime.timedelta'
我已经仔细检查以确保 startdate
和 endate
是 datetime.datetime
类型。我实际上需要它作为日期而不是日期时间。我也尝试使用 loop_startdate.date() + timedelta()
,但它也返回 None。
我不明白为什么 datetime.datetime + timedelta()
返回 None。我的 Python 版本是 3.6.5
好像是个小错别字。
将 print('loop_enddate', loop_endate)
更改为 print('loop_enddate', loop_enddate)
。
此外,将 loop_startdate = loop_endate
更改为 loop_startdate = loop_enddate
。
startdate = dt.strptime('13/12/2020', '%d/%m/%Y')
enddate = dt.strptime('4/12/2020', '%d/%m/%Y')
interval = 5
print('startdate', startdate)
print('enddate', enddate)
loop_startdate = startdate
loop_endate = None
for _ in range((diff//interval) + 1):
print(_, loop_startdate)
loop_enddate = loop_startdate + timedelta(days=interval)
print('loop_enddate', loop_endate)
if loop_enddate > enddate:
loop_enddate = enddate
loop_startdate = loop_endate
startdate
和 enddate
是 datetime.datetime
个实例。我打印了 'startdate' 和 enddate
结果如下。
startdate 2020-12-04 00:00:00
enddate 2020-12-13 00:00:00
0 2020-12-04 00:00:00
loop_enddate None
1 None
Traceback (most recent call last):
File "pythonfilepathhere", line 81, in <module>
loop_enddate = loop_startdate + timedelta(days=interval)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'datetime.timedelta'
我已经仔细检查以确保 startdate
和 endate
是 datetime.datetime
类型。我实际上需要它作为日期而不是日期时间。我也尝试使用 loop_startdate.date() + timedelta()
,但它也返回 None。
我不明白为什么 datetime.datetime + timedelta()
返回 None。我的 Python 版本是 3.6.5
好像是个小错别字。
将 print('loop_enddate', loop_endate)
更改为 print('loop_enddate', loop_enddate)
。
此外,将 loop_startdate = loop_endate
更改为 loop_startdate = loop_enddate
。