2011-12-12 205 views
0

我是新來的python,我試圖在while語句中使用一段時間。比較時間與日期時間

while hours_left is greater than 0:00 
{ 
    do some stuff 
    decrement hours_left 
} 

是我想要實現的。

但是我不能只說hours_left > 0,因爲它是一個整數。

任何想法如何我可以鍵入0:00作爲日期時間?

謝謝!

回答

2

你想要一個timedelta對象。

import datetime 
current_time = datetime.datetime(2011,12,12,12,0,0) # High Noon! 
end_time = datetime.datetime(2011,12,25,0,0,0)  # Santa? 
while end_time-current_time > datetime.timedelta(0): 
    do_stuff() 
    current_time = current_time - datetime.timedelta(hours=1) 
+0

我一直在使用timedelta,我錯過的部分是,如果我理解正確,'timedelta(0)'將永遠= 0對嗎? – user974703

+0

是的,這是正確的。 –

+0

我得到一個類型錯誤的無法令人懷疑的類型,datetime.datetime()> datetime.timedelta() – user974703

0

當然,取一個當前的日期時間對象,添加剩下的小時數,然後比較當前對象和剩下小時數的新對象。如果當前的那個比新的還少,那麼你還剩下幾個小時。

+0

如果我正確理解你,你說我應該對當前時間進行一次新的呼叫,並用它來比較。問題是,這是一個日曆應用程序。時間是抽象的,這不是實際的。這意味着我不能只獲得當前時間。 – user974703

+0

它可能是一個抽象的時間,我認爲你仍在某種程度上管理時間。如果它是靜止的,即使剩下0.0001小時,它仍然不會耗盡時間。 –