Преобразование времени HackerRank: решение Python для 12-часового формата в 24-часовой

Вот решение проблемы 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