Вот решение проблемы HackerRank «Преобразование времени» в Python:
def timeConversion(s):
# Split the time string into hours, minutes, seconds, and the AM/PM indicator
hours, minutes, seconds = map(int, s[:-2].split(':'))
am_pm = s[-2:]
# Convert the hours to 24-hour format
if am_pm == 'PM' and hours != 12:
hours = (hours + 12) % 24
elif am_pm == 'AM' and hours == 12:
hours = 0
# Format the time in 24-hour format
time_24h = f"{hours:02d}:{minutes:02d}:{seconds:02d}"
return time_24h
Объяснение: Функция timeConversion
принимает строку s
, представляющую время в 12-часовом формате (например, «07:05:45PM»), и преобразует ее в 24-часовой формат (например, «19:05:45»).
Функция разбивает строку времени на часы, минуты, секунды и индикатор AM/PM с помощью метода split(':')
. Затем он преобразует часы, минуты и секунды в целые числа с помощью функции map
.
Чтобы преобразовать время в 24-часовой формат, функция проверяет, является ли индикатор AM/PM «PM» и часы не равны 12. Если это правда, она добавляет 12 к часам (заботясь о переносе на следующий день, если необходимо) с помощью оператора по модулю. Если индикатор AM/PM имеет значение «AM», а часы равны 12, часы устанавливаются на 0.
Наконец, функция форматирует время в 24-часовом формате, используя f-строки, и возвращает результат.
Вот пример использования функции timeConversion
:
time_12h = "07:05:45PM"
time_24h = timeConversion(time_12h)
print(time_24h) # Output: 19:05:45