我对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
提前致谢。
答案 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