2016-08-04 104 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

這是增加秒而不是分鐘。我該怎麼做? –