Напишите функцию, которая будет принимать время — time1
и time2
— и возвращать количество часов между ними.
Примечания
time1
всегда будет начальным временем, аtime2
— конечным.- Если
time1
равноtime2
, верните строку"no time passed"
(«нисколько времени не прошло»).
Примеры
hours_passed("3:00 AM", "9:00 AM") ➞ "6 hours" hours_passed("2:00 PM", "4:00 PM") ➞ "2 hours" hours_passed("1:00 AM", "3:00 PM") ➞ "14 hours"
Варианты решения
import datetime def hours_passed(time1, time2): if time1 == time2: return "no time passed" else: dt1 = datetime.datetime.strptime(time1, '%I:%M %p') dt2 = datetime.datetime.strptime(time2, '%I:%M %p') return "{} hours".format(str(dt2 - dt1).split(':')[0])
from datetime import datetime def hour(time): return datetime.strptime(time, '%I:%M %p').hour def hours_passed(time1, time2): hours = hour(time2) - hour(time1) return ('{} hours'.format(hours) if hours else 'no time passed')
from datetime import datetime def hours_passed(time1, time2): d = datetime.strptime(time2, "%I:%M %p") - datetime.strptime(time1, "%I:%M %p") d = d.seconds // 3600 return "%d hours" % d if d else "no time passed"