2014-11-02 140 views
0

我需要你的幫助。計算時間段

對於例 - 在workingtime:

start = datetime.datetime(2014, 11, 19, 7, 15) 
end = datetime.datetime(2014, 11, 19, 11, 15) 

現在我們有4小時workingtime。

我需要一個函數,模塊或一些幫助,我可以得到「剩下的一天」。

例如 - 在空閒時間:

freetime_begin_1 = datetime.datetime(2014, 11, 19, 0, 0) 
freetime_end_1 = datetime.datetime(2014, 11, 19, 7, 15) 
freetime_begin_2 = datetime.datetime(2014, 11, 19, 11, 15) 
freetime_end_2 = datetime.datetime(2014, 11, 19, 23, 59) 

我希望你明白我的意思。

謝謝。

+0

像天的休息,u能介紹更多 – Hackaholic 2014-11-02 15:48:45

+1

我不明白。首先7點15分 - > 11點15分給4個小時不是3分。下一個常用的用法包括較低和較高的排除。有了這個規則,第二天的空閒時間應該是0h0 - > 7h15 + 11h15 - > 0h0,並且希望全天將持續7h15 + 4h + 12h45 = 24 heure,這比22h58更常見! – 2014-11-02 15:50:57

+0

你好,4個小時。好的 - 我認爲我的例子很糟糕 - 所以你是對的。 – JER 2014-11-02 15:59:46

回答

0

您可以使用此例如:

#!/usr/bin/env python 
#coding:utf-8 
import datetime 


def dt_desc(dt): 
    dt = str(dt) 
    days = dt[:-8] 
    dt = str(dt)[-8:] 
    h,m,s = map(lambda s:int(s.strip()),dt.split(":")) 

    ret = "%s"%days if len(days)!=0 else "" 
    ret += "%s hours "%h if h != 0 else "" 
    ret += "%s minutes "%m if m != 0 else "" 
    ret += "%s seconds"%s if s != 0 else "" 
    return ret 

start = datetime.datetime(2014, 11, 19, 7, 15) 
end = datetime.datetime(2014, 11, 19, 11, 15) 
print dt_desc(end-start) 

freetime_begin_1 = datetime.datetime(2014, 11, 19, 0, 0) 
freetime_end_1 = datetime.datetime(2014, 11, 19, 7, 14) 
freetime_begin_2 = datetime.datetime(2014, 11, 19, 11, 16) 
freetime_end_2 = datetime.datetime(2014, 11, 19, 23, 59) 

print dt_desc(freetime_end_1 - freetime_begin_1) 
print dt_desc(freetime_end_2 - freetime_begin_2) 

freetime_begin_3 = datetime.datetime(2014, 1, 19, 11, 16) 
freetime_end_3 = datetime.datetime(2014, 11, 19, 23, 59) 

print dt_desc(freetime_end_3 - freetime_begin_3)