2011-12-12 160 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小时,它仍然不会耗尽时间。 –