因此我希望将输入(例如上午7:00作为开始时间),然后说晚上10:00作为结束时间,然后比较一组时间(也以8:00 AM的形式) ,下午3点等,看看那些时间是否在时间范围内。是否有一个很好的方法来创建一个有一个小时范围的“日”(结束时间可以是凌晨4点,所以我想我会从早上6点到凌晨5点59分而不是午夜 - 晚上11:59,如果有可能的话,我可以查看时间吗?
例如:starttime = 8:00 AM, endtime = 3:00 AM
,并且检查time = 7:00 AM
会使时间超出范围。
谢谢!
答案 0 :(得分:2)
我可能会使用datetime库。在输入字符串上使用strptime()
,然后您可以直接比较datetime
个对象。
答案 1 :(得分:2)
使用datetime
解析和比较功能:
from datetime import datetime, timedelta
def parse_time(s):
''' Parse 12-hours format '''
return datetime.strptime(s, '%I:%M %p')
starttime = parse_time('8:00 AM')
endtime = parse_time('3:00 AM')
if endtime < starttime:
# add 1 day to the end so that it's after start
endtime += timedelta(days=1)
checked_time = parse_time('7:00 AM')
# Can compare:
print starttime <= checked_time < endtime
答案 2 :(得分:1)
将所有时间转换为24小时格式,将分钟和秒作为小时的分数,然后将它们作为数字进行比较,以查看时间是否在一个时间间隔内。
答案 3 :(得分:1)
Python的datetime。*类已经支持比较:
>>> import datetime
>>> datetime.datetime(2012,10,2,10) > datetime.datetime(2012,10,2,11)
False
>>> datetime.datetime(2012,10,2,10) > datetime.datetime(2012,10,2,9)
True
所以你要做的就是声明一个类TimeRange,有两个成员startTime和endTime。那么“内部”功能可以简单如下:
def inside(self, time):
return self.startTime <= time and time <= self.endTime