我正在尝试寻找最干净/最具python风格的方法来评估“现在”是否介于两次之间;但是,开始/结束时间可能会(也可能不会)跨越一天的界限-例如(仅使用简单的示例):
onhour=23
onmin=30
offhour=4
offmin=15
timenow = datetime.datetime.now().time()
做一个直接的if START < NOW < END
场景是行不通的!
我目前掌握的是一些代码,这些代码评估当前是否为“夜间”,如下所示:
def check_time(timenow, onhour, onmin, offhour, offmin, verbose):
now = datetime.datetime.now()
now_time = now.time()
# If we're actually scheduling at night:
if int(offhour) < int(onhour):
# Check to see if we're in daylight times (ie. off schedule)
if datetime.time(int(offhour),int(offmin)) <= now_time <= datetime.time(int(onhour),int(onmin)):
if verbose == True:
print("Day Time detected.")
return False
else:
if verbose == True:
print("Night Time detected.")
return True
else:
if datetime.time(int(onhour),int(onmin)) <= now_time <= datetime.time(int(offhour),int(offmin)):
if verbose == True:
print("Night Time detected.")
return True
else:
if verbose == True:
print("Day Time detected.")
return False
如果标题听起来不像什么新的,但已经为类似的问题复习了一些现有的答案,例如:
我注意到这些似乎并不能解释开始和结束时间发生在一天范围内的情况。
除此之外,任何关于添加基于天的日程安排的想法也会非常有用!例如,“周一至周五,23:00打开,04:00关闭”-但是在任何一方都要管理一天的开关(否则,星期五会打开某些东西,但星期六不会关闭--但是,包括星期六意味着它在23点再次打开
我考虑过做一个简单的“在X点打开,在Y点睡觉”来解决这个问题。。。但如果脚本是在“On”周期中启动的,则在下次运行之前不会启动它。。。但这似乎是最简单的选择!:)
我希望有一个很棒的模块来完成这一切。。。:天
Python2.7-3.2的兼容性对我来说也很重要!
测试条件:
要确定给定时间(无日期)是否在给定的开始时间和结束时间之间(不包括结束时间):
示例:
你的密码有点乱。我会这样做:
相关问题 更多 >
编程相关推荐