if语句中的Python时差

时间:2014-08-15 11:48:30

标签: python datetime if-statement time

我对python很新,并且在if语句和datetime模块方面遇到了一些问题。程序会在按下按钮时占用时间,在释放按钮时占用另一个按钮。然后从减去开始减去时间差。如何使用if语句中的时差来执行特定任务?这是我的代码:

from datetime import datetime

start = datetime.now().replace(microsecond=0)
finish = datetime.now().replace(microsecond=0)
total = (finish - start)

if(total > 0:00:08):
    #do something

提前致谢。

4 个答案:

答案 0 :(得分:5)

从另一个日期减去一个日期得到的值是timedelta个对象。这有一个方法,total_seconds(),毫不奇怪地给你总秒数,你可以比较。

if total.total_seconds() > 8:

请注意,您的代码无效,因为日期没有now()方法:您的意思是datetime

答案 1 :(得分:2)

减去两个datetime对象将产生timedelta。您可以将此与某些固定timedelta进行比较,例如下面示例中的6秒。

if (total > datetime.timedelta(0, 6)):
    # do something
  

datetime.timedelta所有参数都是可选的,默认为0.参数可以是整数,长整数或浮点数,可以是正数或负数。

class datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])

答案 2 :(得分:2)

使用timedelta,https://docs.python.org/2/library/datetime.html

from datetime import datetime
start = datetime.now()
finish = datetime.now()

total = finish - start

if (total.seconds > 8):
    # do something

对于按钮按下并释放total.seconds就可以了,增量计算以天,秒和微秒为单位,所以如果你的差异将超过几天,那么你应该使用total_seconds(),另一方面使用total_seconds( )总是安全的选择。

答案 3 :(得分:0)

试试这个

from datetime import datetime

start = datetime.now()
finish = datetime.now()

delta = finish - start

if delta.total_seconds() > 5:
   # do something
  • 您必须使用日期时间而不是日期。
  • 减去或加两次给你timedelta
  • 您已使用delta.total_seconds()来获取以秒为单位的差异,delta.seconds将仅返回差异的秒部分