将当前时间与没有日期的用户输入时间进行比较
所以我正在制定一个照明程序,我需要做一些时间比较,看看我是否处于周期中间或周期之外。长话短说,我在将用户输入的时间与日期时间模块的格式化时间进行比较时遇到问题:
def userInput():
try:
a = datetime.datetime.strptime(input('When you would like to routine to start in HH:MM 24 hour format: '), "%H:%M")
print (a.strftime("%H:%M"))
except:
print ("Please enter correct time in HHMM format")
return a
def timeComparator(a):
now = datetime.datetime.now().time()
#this obtains the current time
today = a
#if statement compares input from
print("the time now is: ", now)
if (now < today):
print ("hello human")
elif (now > today):
print ("hello plant")
if __name__=="__main__":
a = userInput()
timeComparator(a)
我收到错误"类型错误:'日期时间.时间'和'日期时间.日期时间'的实例之间不支持'<'",我想这意味着用于比较的格式不兼容。
我不需要日期或其他任何东西,只需要当前时间。我希望能够比较用户输入时间是在当前时间之前还是之后。
函数
timeComparator
中的today
是datetime
对象,而now
是time
对象。只需确保user_input
返回一个time
对象:
def userInput():
try:
a = datetime.datetime.strptime(input('When you would like to routine to start in HH:MM 24 hour format: '), "%H:%M").time() #<----- added .time()
print (a.strftime("%H:%M"))
except:
print ("Please enter correct time in HHMM format")
return a