我想计算两个日期之间的天数

-2 投票
1 回答
1410 浏览
提问于 2025-04-18 13:54

这里有一些原型代码,它可以计算并打印出两个日期之间的时间:

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

撰写回答