我想计算两个日期之间的天数
这里有一些原型代码,它可以计算并打印出两个日期之间的时间:
from datetime import datetime
date_format= "%m/%d/%y"
now=datetime.now()
print now
d1=datetime.now()
d2=datetime.strptime('07/21/14',date_format)
delta= d2-d1
print delta
我想修改一下这个代码,让它可以询问用户输入两个日期,而不是在代码里直接写死日期。
到目前为止,我写了:
date1=raw_input("What is date 1 ?:")
print date1
date2=raw_input("What is date 2 ?:")
print date2
delta=date2-date1
print delta
但是当我输入我的日期后,出现了这个错误:
Traceback (most recent call last):
File "C:/Python27/datetimetest.py", line 17, in <module>
delta=date2-date1
TypeError: unsupported operand type(s) for -: 'str' and 'str'
1 个回答
1
你需要把从 raw_input()
得到的字符串转换成日期对象。就像你在原始代码中做的那样。
from datetime import datetime
date_format= "%m/%d/%y"
date1 = raw_input("What is date 1: ")
date1 = datetime.strptime(date1, date_format)
date2 = raw_input("What is date 2: ")
date2 = datetime.strptime(date2, date_format)
print
print 'Date 1:', date1
print 'Date 2:', date2
print 'Delta: ', date2 - date1
如果我们运行这个:
What is date 1: 3/14/12
What is date 2: 3/16/12
Date 1: 2012-03-14 00:00:00
Date 2: 2012-03-16 00:00:00
Delta: 2 days, 0:00:00