Удивительно, но эта простая задача, кажется, еще не существует, так что ...
Ваша задача - написать программу, которая использует в качестве входных данных 12-часовое время и преобразует его в «военное время» или 24-часовой формат времени.
Вход будет в форме:
HH:MM am/pm
Хотя допускаются небольшие вариации:
Пробел, отделяющий am / pm от остального времени, не является обязательным.
Последняя часть может быть "am" / "pm" или "a" / "p".
Любая капитализация в порядке.
На выходе будет введено время, преобразованное в 24-часовой формат. Это может быть число или строка.
Для ввода и вывода:
0 в первую очередь необязательны. 0 в последних 3 местах являются обязательными.
разделитель между часами и минутами может быть «:», «» (пробел) или ничего.
Другие заметки:
Полночь может быть выражена как 0000 или 2400.
Полночь будет считаться «утра», а полдень будет считаться «вечера».
Ваша программа может быть функцией или полной программой и должна либо возвращать результат, либо выводить его на стандартный вывод. Конечный пробел в порядке.
Примеры (вы не обязаны поддерживать каждый формат):
12:00am -> 0000
1200 pm -> 1200
1234Am -> 00:34
134a -> 134
01:34PM -> 13 34
1234pm -> 1234
Это код гольф, поэтому выигрывает наименьшее количество байтов. Поскольку это так тривиально, чтобы решить с помощью встроенного, было бы неплохо увидеть некоторый код, который решает это вручную (но использование встроенных модулей хорошо).
Просто чтобы уточнить, вы не обязаны поддерживать все возможные форматы. Хорошо поддерживать только один вход и один выходной формат (на ваш выбор). Однако я хотел бы ограничить формат, как описано выше (который уже довольно бесплатный). {1134,'pm'}
, например, было бы неприемлемо.
01:54pm
будет работать, но 1:54pm
не будет?