Erstaunlicherweise scheint diese einfache Aufgabe noch nicht zu existieren, also ...
Ihre Aufgabe ist es, ein Programm zu schreiben, das eine 12-Stunden-Zeit als Eingabe verwendet und es in "Militärzeit" oder 24-Stunden-Zeitformat umwandelt.
Die Eingabe erfolgt in der Form:
HH:MM am/pm
Obwohl geringfügige Abweichungen zulässig sind:
Der Abstand zwischen vormittags und nachmittags zum Rest der Zeit ist optional.
Der letzte Teil kann entweder "am" / "pm" oder "a" / "p" sein.
Jede Großschreibung ist in Ordnung.
Die Ausgabe ist die eingegebene Zeit, die in das 24-Stunden-Format umgewandelt wird. Es kann eine Zahl oder eine Zeichenfolge sein.
Für die Eingabe und Ausgabe:
Nullen an erster Stelle sind optional. 0 in den letzten 3 Stellen sind Pflichtfelder.
Das Trennzeichen zwischen Stunden und Minuten kann ein ":", "" (ein Leerzeichen) oder nichts sein.
Weitere Hinweise:
Mitternacht kann entweder als 0000 oder 2400 ausgedrückt werden.
Mitternacht gilt als "Uhr", Mittag als "Uhr".
Ihr Programm kann eine Funktion oder ein vollständiges Programm sein und sollte entweder das Ergebnis zurückgeben oder es an die Standardausgabe ausgeben. Nachgestellte Leerzeichen sind in Ordnung.
Beispiele (Sie müssen nicht jedes Format unterstützen):
12:00am -> 0000
1200 pm -> 1200
1234Am -> 00:34
134a -> 134
01:34PM -> 13 34
1234pm -> 1234
Das ist Codegolf, also gewinnt die kleinste Anzahl von Bytes. Da es so trivial ist, dies mit einem eingebauten Code zu lösen, wäre es schön, Code zu sehen, der dies manuell löst (die Verwendung von eingebauten Codes ist jedoch in Ordnung).
Um dies zu verdeutlichen, müssen Sie nicht jedes mögliche Format unterstützen. Es ist in Ordnung, nur ein einzelnes Eingabe- und ein einzelnes Ausgabeformat (Ihrer Wahl) zu unterstützen. Ich möchte jedoch das Format wie oben beschrieben einschränken (was schon ziemlich kostenlos ist). {1134,'pm'}
Zum Beispiel wäre inakzeptabel.
01:54pm
würde funktionieren, aber 1:54pm
nicht?