2014-12-25 38 views
0
from datetime import datetime 

FMT = '%H%M' 
rate1 = 35.34 
Midnight = "0000" 

signOnSun1 = raw_input("What time did you sign on Sunday: "); 
signOffSun1 = raw_input("What time did you sign off Sunday: "); 

totalShift = (datetime.strptime(signOffSun1, FMT) - datetime.strptime (signOnSun1, FMT)) 

midnightToSignOff = (datetime.strptime(signOffSun1, FMT) - datetime.strptime (Midnight, FMT)) 
midnightToSignOff = diff.total_seconds()/60.0/60 

基本上这就是我所拥有的。如果我在1800年登录并在0200晚上签收,我无法返回8 8小时的正确答案如何计算第一天和第二天之间的时间(Python)

+0

你能给我们一个简单的代码表明你想要做什么吗?一个没有大量不必要的常量和Tkinter和用户输入? –

+0

使用'datetime'(特定的'datetime.timedelta')来查找时间差异。 – alfasin

+0

好男人我转发了谢谢 –

回答

0

问题是程序不知道班次在第二天结束。为了解决这个问题,你可以检查签到时间是否晚于签到时间,如果是这种情况,可以在签到时间加一天。

from datetime import datetime, timedelta 

FMT = '%H%M' 
sign_on_time_str = raw_input("What time did you sign on Sunday: "); 
sign_off_time_str = raw_input("What time did you sign off Sunday: "); 
sign_on_time = datetime.strptime(sign_on_time_str, FMT) 
sign_off_time = datetime.strptime(sign_off_time_str, FMT) 

if sign_on_time > sign_off_time: 
    sign_off_time += timedelta(days=1) 

total_shift = sign_off_time - sign_on_time 
print total_shift.total_seconds()/60/60 
+0

THANKS BROOOOOOOOOOOOOO = D –