2016-08-04 60 views
1

我以HH:MM格式的用户输入时间作为输入。比方说00:00,现在我想继续增加一分钟的时间,并使其成为00:01,00:02等等。以小时和分钟计时python的字符串并计算差异

此外,我从用户start_timeend_time获取两个输入作为字符串。我怎样才能在几分钟内计算两次之间的差异?

我是新来的Python和任何帮助,将不胜感激!

我使用下面的代码:

#to calculate difference in time 
time_diff = datetime.strptime(end_time, '%H:%M') - datetime.strptime(start_time, '%H:%M') 
minutes = int(time_diff.total_seconds()/60) 
print minutes 

#to convert string to time format HH:MM 
start_time = datetime.strptime(start_time, '%H:%M').time() 

#to increment time by 1 minute 
start_time = start_time + datetime.timedelta(minutes=1) 

我不能递增start_time使用timedelta。

+0

你能否展示你所做的任何尝试以及你遇到的问题? – James

+0

@詹姆斯我在描述中添加了我的代码。请检查一下。 –

回答

1
import datetime 

time_diff = datetime.datetime.strptime(end_time, '%H:%M') - datetime.datetime.strptime(start_time, '%H:%M') 
minutes = int(time_diff.total_seconds()/60) 
print minutes 

datetime是一类具有一个称为strptime类方法的datetime模块。命名有点混乱,但这应该按照你的意图工作。

至于增加一个时间差,就需要开始时间存储为datetime对象,以获取工作:

start_datetime = datetime.datetime.strptime(start_time, '%H:%M') 
start_datetime = start_datetime + datetime.timedelta(minutes=1) 
print start_datetime 
+0

谢谢!我也是这样做的,但现在我很难将时间增加1分钟。 –

+0

是的,起初并没有看到那部分问题 - 我现在回答它 – James

0
你的问题的

第一部分,你可以使用datetime module

from datetime import datetime as dt 
from datetime import timedelta as td 
UsrInput = '00:00' 
fmtString = '%H:%M' 
myTime = dt.strptime(UsrInput, fmtString) 
increment = td(0,1) 
for count in range(10): 
    myTime += increment 
    print (dt.strftime(myTime, fmtString)) 

第二部分也将采用日期时间,因为这样的:

from datetime import datetime as dt 
from datetime import timedelta as td 
start_time = '00:01' 
end_time = '00:23' 
fmtString = '%H:%M' 
myStart = dt.strptime(start_time, fmtString) 
myEnd = dt.strptime(end_time, fmtString) 
difference = myEnd - myStart 
print(td.strftime(difference, '%M') 
+0

这是增加秒而不是分钟。我该怎么做? –