我试图找到最干净/最pythonic的方式来评估“ now”是否介于两次之间;然而;
例如,“开始/结束时间”可能会跨越一天的边界,也可能不会跨越一天的边界(仅使用简单的示例):
onhour=23
onmin=30
offhour=4
offmin=15
timenow = datetime.datetime.now().time()
做一个简单的if START < NOW < END
方案是行不通的!
我目前拥有的一些代码可以评估当前是否为“ NightTime”,如下所示:
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处睡眠”来解决这个问题……但是,如果脚本是在“打开”周期内启动的,那么直到下一次运行它才会启动。但这似乎是最简单的选择!:)
我希望有某种很棒的模块可以完成所有这些工作…:D
Python2.7-3.2的兼容性对我来说也很重要!
您的代码有点混乱。我会做这样的事情:
import datetime
DAY, NIGHT = 1, 2
def check_time(time_to_check, on_time, off_time):
if on_time > off_time:
if time_to_check > on_time or time_to_check < off_time:
return NIGHT, True
elif on_time < off_time:
if time_to_check > on_time and time_to_check < off_time:
return DAY, True
elif time_to_check == on_time:
return None, True
return None, False
on_time = datetime.time(23,30)
off_time = datetime.time(4,15)
timenow = datetime.datetime.now().time()
current_time = datetime.datetime.now().time()
when, matching = check_time(current_time, on_time, off_time)
if matching:
if when == NIGHT:
print("Night Time detected.")
elif when == DAY:
print("Day Time detected.")
我在计算两次约会的时差。。 上面的方法很有效,但它可以提供几天、几小时和几秒钟的时间。我希望它也能告诉我月份。但问题是每个月都有不同的天数,所以我如何才能找到月数呢?
我试图计算两个时间之间有多少毫秒(例如,从13:00到13:01,有60000毫秒)。时间由2个整数(小时、分钟)表示。 我写了这个函数: 然而,当第二次是第二天时,这将不起作用(例如,从周日14:00到周一13:00之间有多少毫秒?)
问题内容: 我有两个字符串变量,例如StartTime和EndTime。我需要通过用StartTime减去EndTime来计算TotalTime。 StartTime和EndTime的格式如下: TotalTime(小时和分钟格式)。如何在Android中计算? 问题答案: 尝试下面的代码。 //假设时间格式为 (“ hh:mm a”) 格式 输出 -小时数:: 8
问题内容: 我有一个带有StartDate列的表,我想计算两个连续记录之间的时间差。 谢谢。 @ Mark Byers和@ Yahia,我将请求表作为requestId,startdate 我想知道requestid 1和2、2和3、3和4等之间的时差是多少。我知道我需要在表上进行自我连接,但是我在子句上没有得到正确的支持。 问题答案: 要实现您的要求,请尝试以下操作(从OP编辑后进行更新): 如
问题内容: 在我的应用中,我创建了一个代表高中班级的对象。该对象包含2个Calendar对象,分别代表班级每天的开始和结束时间。当用户创建作业时,我要检查当前时间是否在任何课程的两次之间。如果是的话,我知道作业是在该课程中创建的。这是我当前无法使用的代码,因为.getTime()返回一个包含月和日的日期,而我只想比较小时和分钟。因此,如何修剪返回的日期,使其仅包含一天中的时间?使用joda- ti
问题内容: 我有以下三个字符串(当前时间,日落和日出),如何确定当前时间是否在日出和日落之间? 问题答案: $current_time = “4:59 pm”; $sunrise = “5:42 am”; $sunset = “6:26 pm”; $date1 = DateTime::createFromFormat(‘H:i a’, $current_time); $date2 = DateTi