O dziwo, to proste zadanie nie wydaje się już istnieć, więc ...
Twoim zadaniem jest napisanie programu, który pobiera jako dane wejściowe 12 godzinny czas i konwertuje go na „czas wojskowy” lub 24-godzinny format czasu.
Dane wejściowe będą miały postać:
HH:MM am/pm
Chociaż dopuszczalne są niewielkie różnice:
Przestrzeń oddzielająca am / pm od reszty czasu jest opcjonalna.
Ostatnią częścią może być „am” / „pm” lub „a” / „p”.
Wszelkie wielkie litery są w porządku.
Wyjściem będzie czas wprowadzony, przekształcony do formatu 24-godzinnego. Może to być liczba lub ciąg znaków.
Zarówno dla wejścia jak i wyjścia:
Zera na pierwszym miejscu są opcjonalne. 0 w ostatnich 3 miejscach jest obowiązkowe.
ogranicznikiem oddzielającym godziny i minuty może być „:”, „” (spacja) lub nic.
Inne notatki:
Północ może być wyrażona jako 0000 lub 2400.
Północ będzie uważana za „przed południem”, a południe za „po południu”.
Twój program może być funkcją lub pełnym programem i powinien albo zwrócić wynik, albo wypisać go na standardowe wyjście. Końcowe białe znaki są w porządku.
Przykłady (nie musisz obsługiwać każdego formatu):
12:00am -> 0000
1200 pm -> 1200
1234Am -> 00:34
134a -> 134
01:34PM -> 13 34
1234pm -> 1234
To jest kod golfowy, więc wygrywa najmniejsza liczba bajtów. Ponieważ jest to tak trywialne do rozwiązania za pomocą wbudowanego, fajnie byłoby zobaczyć kod, który ręcznie to rozwiązuje (ale użycie wbudowanych jest w porządku).
Właśnie w celu wyjaśnienia, to nie są zobowiązane do wspierania wszelkich możliwych format. Obsługa tylko jednego wejścia i jednego formatu wyjściowego (do wyboru) jest w porządku. Chciałbym jednak ograniczyć format opisany powyżej (który jest już całkiem darmowy). {1134,'pm'}
byłoby na przykład nie do przyjęcia.
01:54pm
działałoby, ale 1:54pm
nie?