Дивно, але це просте завдання, здається, вже не існує, тому ...
Ваше завдання - написати програму, яка сприймає як введення 12-годинний час, і перетворює її у "військовий час", або 24-годинний формат часу.
Введення буде у формі:
HH:MM am/pm
Хоча можливі незначні зміни:
Простір, що відокремлює am / pm від решти часу, необов’язково.
Остання частина може бути або "am" / "pm", або "a" / "p".
Будь-яка капіталізація - це добре.
Результатом буде введений час, перетворений у 24-годинний формат. Це може бути число або рядок.
Як для вводу, так і для виходу:
0 в першу чергу необов’язкові. 0 на останніх 3 місцях є обов'язковими.
Розмежувач, що розділяє години і хвилини, може бути ":", "" (пробіл) або нічого.
Інші примітки:
Опівночі можна виразити або 0000, або 2400.
Опівночі вважатиметься "ранку", а полудень вважатиметься "вечором".
Ваша програма може бути функцією або повноцінною програмою, і вона повинна або повернути результат, або вивести його в stdout. Пробіл пробілів у порядку.
Приклади (не потрібно підтримувати кожен формат):
12:00am -> 0000
1200 pm -> 1200
1234Am -> 00:34
134a -> 134
01:34PM -> 13 34
1234pm -> 1234
Це кодовий гольф, тому виграє найменша кількість байтів. Оскільки це настільки банально для вирішення за допомогою вбудованого, було б непогано побачити якийсь код, який вирішує це вручну (але використання вбудованих файлів добре).
Для уточнення вам не потрібно підтримувати всі можливі формати. Підтримка лише одного входу та одного формату виходу (на ваш вибір) є чудовою. Однак я хотів би обмежити формат, як зазначено вище (який уже досить вільний). {1134,'pm'}
наприклад, було б неприйнятно.
01:54pm
працювало б, але 1:54pm
чи ні?