python - 用户输入时间然后比较
问题描述
将当前时间与没有日期的用户输入时间进行比较
所以我正在做一个照明例程,我需要做一些时间比较,看看我是在一个周期的中间还是在一个周期之外。长话短说,我在将用户输入的时间与 datetime 模块的格式化时间进行比较时遇到问题:
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)
我收到错误“TypeError:'<'在'datetime.time'和'datetime.datetime'的实例之间不支持”,我猜这意味着比较的格式不兼容。
我不需要日期或其他任何东西,只需要当前时间。我希望能够比较用户输入时间是在当前时间之前还是之后。
解决方案
你today
在函数timeComparator
中是一个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
推荐阅读
- azure - 获取向 Microsoft Teams Bot 提及的用户的 AADObject Id
- jquery - 如何创建下拉切换效果
- flutter - 如何将 CocoaPod 添加到 Flutter 项目中?
- python - 输入 Dim 与层 lstm_3 不兼容
- python - 数据框中的 Pandas FIFO
- snowflake-cloud-data-platform - Snowpipe 收到 S3 消息但不转发
- react-native - 崩溃后React-native redux导航状态重置
- python - 如何在 __init__.py 中动态创建类
- html - 有没有办法让左标签从对象的右侧开始计数?
- c# - c#如何创建循环直到满足条件?