Пользовательский ввод времени и затем сравнение - PullRequest
2 голосов
/ 04 апреля 2019

Сравнение текущего времени с временем ввода пользователя БЕЗ даты

Итак, я делаю процедуру освещения, и мне нужно провести некоторое сравнение времени, чтобы увидеть, нахожусь ли я в середине цикла или вне цикла. Короче говоря, у меня возникают проблемы при сравнении ввода времени пользователем с форматированным временем модуля 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)

Я получаю сообщение об ошибке «Ошибка типа: <<не поддерживается между экземплярами datetime.time» и «datetime.datetime» », что, по-моему, означает, что форматирование для сравнения несовместимо. </p>

Мне не нужна дата или что-то еще, только текущее время. Я хотел бы просто иметь возможность сравнить, если время ввода пользователя до или после текущего времени.

1 Ответ

0 голосов
/ 04 апреля 2019

Ваш 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
...