2017-06-15 21 views
1

我想輸入開始和結束時間:日期&時間 我想運行兩個日期之間的經過時間的計算。Python3使用日期時間計算時間?

試圖瞭解日期時間,日期,時間,timedelta。 strptime/strftime

如果用戶輸入; START_TIME:2017,7,15上午10時45 END_TIME:2017,7,16凌晨1:30

計算值小時/使用權重的diff分鐘: 上午10時45分 - >下午9點00 = 10:15 * 2 下午9:00 - >凌晨1:30 = 4:30 * 2.5

嘗試過這樣的事情:

st_date = date(2017, 6, 15) 
st_time = time(10, 45) 
start = datetime.combine(st_date, st_time) 

end_date = date(2017, 6, 15) 
end_time = time(22, 30) 
end = datetime.combine(end_date, end_time) 

st = datetime.strftime(end, '%Y %B %d %I:%M %p') 
et = datetime.strftime(start, '%Y %B %d %I:%M %p') 

但它是完全錯誤的。我無法對strftime對象執行操作。你能指點我如何繼續的正確方向。

回答

1

我無法對strftime對象執行操作。

strftime函數返回一個很好格式化的字符串,而不是一個日期時間對象。如果你是print(st),你會得到2017 June 15 10:45 AM

如果你想獲得兩個時間datetime對象之間經過,只是減去他們,就像這樣:

from datetime import date 
from datetime import time 
from datetime import datetime 

st_date = date(2017, 6, 15) 
st_time = time(10, 45) 
start = datetime.combine(st_date, st_time) 

end_date = date(2017, 6, 15) 
end_time = time(22, 30) 
end = datetime.combine(end_date, end_time) 

diff = end - start 

這將產生一個timedelta對象。現在,如果你想在幾秒鐘內流逝的時間,你可以這樣做:

elapsed_time = diff.total_seconds() 
+0

謝謝。日期(INT(輸入())) – scopa