Использование условия if в формате datetime - PullRequest
1 голос
/ 27 марта 2019

Мне был задан вопрос, чтобы получить двухкратный ввод от пользователя как функцию (открытие_время, закрытие_время), и мне пришлось определить разницу между временем, но если одно из этих значений не в формате времени, возвращаемое значение должно быть -1. Я вычислил разницу во времени, но я не могу исправить условие, что если какая-либо из переменных не в формате времени, вернуть -1. Пожалуйста, я новичок в кодировании, поэтому прошу прощения за любую ошибку и будьте любезны написать простое решение, не такое сложное.

from datetime import datetime
def compute_opening_duration(opening_time, closing_time):
    str_format = "%H:%M:%S"
    if opening_time or closing_time != datetime.time.str_format:
        print(-1)
    else:
        tdelta = datetime.strptime(closing_time,str_format) 
             - datetime.strptime(opening_time,str_format)
        print(tdelta)

1 Ответ

1 голос
/ 30 марта 2019

Попробуйте - он попытается преобразовать входные данные в дату и время, используя предоставленный вами формат строки. Если на одном из них произойдет сбой, будет напечатано -1.

from datetime import datetime
def compute_opening_duration(opening_time, closing_time):
    str_format = "%H:%M:%S"
    try:
        t_open_time = datetime.strptime(closing_time,str_format)
        t_closing_time = datetime.strptime(opening_time,str_format)
        tdelta = datetime.strptime(closing_time,str_format) - datetime.strptime(opening_time,str_format)
        print(tdelta)
    except:
        print(-1)

compute_opening_duration("04:10:21", "08:22:12")
...