在Python中创建小时范围
因此,我希望输入诸如上午7:00作为开始时间,晚上10:00作为结束时间,然后比较一组时间(也可以是上午8:00、下午3:00等形式),看看这些时间是否在时间范围内。有没有一个好方法可以创建一个有小时范围的“一天”(结束时间可以晚到凌晨4:00,所以我想我应该从早上6:00到早上5:59,而不是午夜到晚上11:59,如果可能的话)来检查时间 例如:在Python中创建小时范围,python,datetime,date,Python,Datetime,Date,因此,我希望输入诸如上午7:00作为开始时间,晚上10:00作为结束时间,然后比较一组时间(也可以是上午8:00、下午3:00等形式),看看这些时间是否在时间范围内。有没有一个好方法可以创建一个有小时范围的“一天”(结束时间可以晚到凌晨4:00,所以我想我应该从早上6:00到早上5:59,而不是午夜到晚上11:59,如果可能的话)来检查时间 例如:starttime=8:00am,endtime=3:00am,检查time=7:00am将返回超出范围的时间 谢谢 将所有时间转换为24小时格式,以
starttime=8:00am,endtime=3:00am
,检查time=7:00am
将返回超出范围的时间
谢谢 将所有时间转换为24小时格式,以分钟和秒为小时的分数,然后将它们作为数字进行比较,看看时间是否在一个间隔内。将所有时间转换为24小时格式,以分钟和秒为小时的分数,然后将它们作为数字进行比较,看看一个时间是否在一个间隔内。我可能会使用这个库。对输入字符串使用
strtime()
,然后可以直接比较datetime
对象。我可能会使用库。在输入字符串上使用strtime()
,然后可以直接比较datetime
对象。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
因此,您所要做的就是声明一个类时间范围,包含两个成员startTime和endTime。然后,“内部”函数可以简单到:
def inside(self, time):
return self.startTime <= time and time <= self.endTime
def内部(自身、时间):
return self.startTimePython的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
因此,您所要做的就是声明一个类时间范围,包含两个成员startTime和endTime。然后,“内部”函数可以简单到:
def inside(self, time):
return self.startTime <= time and time <= self.endTime
def内部(自身、时间):
return self.startTime使用解析和比较功能:
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
从datetime导入datetime,timedelta
def解析时间(秒):
''解析12小时格式''
return datetime.strtime(s,“%I:%M%p”)
starttime=parse_时间(上午8:00)
endtime=parse_time('凌晨3:00')
如果endtime
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
从datetime导入datetime,timedelta
def解析时间(秒):
''解析12小时格式''
return datetime.strtime(s,“%I:%M%p”)
starttime=parse_时间(上午8:00)
endtime=parse_time('凌晨3:00')
如果endtime 打印starttime实际上,比较比Python中的更容易:self.starttime实际上,比较比Python中的更容易:self.starttime谢谢,这应该可以解决我凌晨3:00在上午8:00之后的问题。谢谢,这应该可以解决我凌晨3:00在上午8:00之后的问题。