我需要每天在设定的时间之间执行代码。所以我需要找出当前时间是否在一个时间范围之间。
hralarm=False
now = datetime.datetime.now().time()
if datetime.time(hour=14,minute=40) > now > datetime.time(hour=14,minute=50):
hralarm=True
else :
hralarm=False
hralarm标志始终返回False。 now变量返回14:46:22.994000。我应该将'now'格式化为没有秒和微秒,也许这就是为什么比较没有正确发生的原因?..我是python的新手,所以任何帮助都会非常感激。
答案 0 :(得分:3)
您将比较运算符混淆了。你问的是当前时间是之前 14:40:
datetime.time(hour=14,minute=40) > now # only times *smaller* will match
和之后 14:50:
now > datetime.time(hour=14,minute=50) # only times *greater* will match
没有时钟时间可以同时匹配这两个条件。
以下测试可用于查找14:40到14:50之间的时间:
if datetime.time(14, 40) < now < datetime.time(14, 50):
# 14:40 must be smaller and 14:50 must be greater
请注意<
或>
的“尖头”指向较小的值。
请注意,比较运算符已生成True
或False
,您可以将直接分配给hralarm
变量,而不是使用if
为你确认:
now = datetime.datetime.now().time()
hralarm = datetime.time(14, 40) < now < datetime.time(14, 50)
答案 1 :(得分:-1)
hralarm=False
now = datetime.datetime.now().time()
if datetime.time(hour=14,minute=40) < now < datetime.time(hour=14,minute=50):
hralarm=True
else :
hralarm=False
答案 2 :(得分:-1)
import time
import datetime
hralarm=False
now = datetime.datetime.now().time()
time1 = datetime.time(14, 40, 0)
time2 = datetime.time(14, 50, 0)
if (time1.hour >= now.hour and time1.minute < now.minute) and (now.hour <= time2.hour and now.minute < time2.minute):
hralarm=True
else :
hralarm=False
print(hralarm)