Python:
import datetime
def diff_time(start_time, end_time):
"""Вычисляет разницу между двумя временами в формате ЧЧ:ММ."""
start = datetime.datetime.strptime(start_time, "%H:%M")
end = datetime.datetime.strptime(end_time, "%H:%M")
diff = end - start
hours = diff.seconds // 3600
minutes = (diff.seconds % 3600) // 60
return f"{hours:02}:{minutes:02}"
# Пример использования
start_time = "10:30"
end_time = "12:45"
difference = diff_time(start_time, end_time)
print(difference) # Вывод: 02:15
Объяснение:
datetime
для работы со временем.datetime.datetime.strptime()
преобразует строки времени в объекты datetime.:02
для добавления ведущих нулей.Для вычисления разницы между двумя временами и вывода ее в формате "часы:минуты" в Python, можно использовать модуль datetime
. Вот пример:
from datetime import datetime, timedelta
def calculate_time_difference(start_time, end_time):
"""
Вычисляет разницу между двумя временами и возвращает ее в формате "часы:минуты".
Args:
start_time: Строка, представляющая начальное время в формате "HH:MM".
end_time: Строка, представляющая конечное время в формате "HH:MM".
Returns:
Строка, представляющая разницу между временами в формате "часы:минуты".
Возвращает None, если ввод некорректен.
"""
try:
start_datetime = datetime.strptime(start_time, "%H:%M")
end_datetime = datetime.strptime(end_time, "%H:%M")
# Учитываем, что end_time может быть меньше start_time (например, 23:00 - 01:00)
if end_datetime < start_datetime:
end_datetime += timedelta(days=1) # добавляем один день к end_datetime
time_difference = end_datetime - start_datetime
total_seconds = int(time_difference.total_seconds())
hours = total_seconds // 3600
minutes = (total_seconds % 3600) // 60
return f"{hours:02d}:{minutes:02d}" # Форматируем как "HH:MM"
except ValueError:
return None # Возвращаем None при ошибке парсинга времени
# Пример использования
start_time = "08:30"
end_time = "17:45"
difference = calculate_time_difference(start_time, end_time)
if difference:
print(f"Разница между {start_time} и {end_time}: {difference}") # Вывод: Разница между 08:30 и 17:45: 09:15
else:
print("Некорректный формат времени.")
start_time = "23:00"
end_time = "01:00"
difference = calculate_time_difference(start_time, end_time)
if difference:
print(f"Разница между {start_time} и {end_time}: {difference}") # Вывод: Разница между 23:00 и 01:00: 02:00
else:
print("Некорректный формат времени.")
Объяснение:
datetime
и timedelta
из модуля datetime
.calculate_time_difference
, которая принимает две строки, представляющие начальное и конечное время.datetime.strptime()
для преобразования строк времени в объекты datetime
. Формат "%H:%M"
указывает, что мы ожидаем часы и минуты.timedelta(days=1)
к времени окончания в этом случае.datetime
объектами. Это вернет объект timedelta
.timedelta
объекта, используя total_seconds()
. Приводим к типу int
.:02d
(двузначное число с ведущим нулем, если необходимо).ValueError
, чтобы обработать случаи, когда входные строки не соответствуют ожидаемому формату "HH:MM". В случае ошибки возвращается None
.