Problem
Eines Tages kommt Ihr Chef auf Sie zu und sagt Ihnen, dass er die Zeit kennen muss. Er besteht immer noch darauf, dass Sie auf die Uhr direkt über Ihrem Kopf zeigen, und gibt zu, dass er an einer schweren Dyskalkulie leidet , die dazu führt, dass er nicht einmal Zahlen auf einer Uhr sehen kann. Während Sie sich immer noch fragen, wie jemand, der keine Zahlen sieht, eine Firma leiten kann, sagt er Ihnen, Sie sollen "etwas dagegen unternehmen", was auch immer das ist.
Ihre Aufgabe ist es nun, ein Programm oder eine Funktion zu erstellen, die bei einer Eingabezeit von Stunden und Minuten (Sekunden sind optional) (Stunden basieren auf 24) einen lesbaren englischen Satz ausgibt, der keine Zahlen enthält.
Die Sekunden müssen nicht ausgegeben werden.
Zum Beispiel 08:45:15
sollte ausgebenquarter to nine o'clock AM
Testfälle
00:00:00 > twelve night
12:00:00 > twelve noon
06:00:00 > six o'clock AM
18:00:00 > six o'clock PM
06:15:00 > quarter past six o'clock AM
18:45:00 > quarter to seven o'clock PM
11:30:00 > half past eleven o'clock AM
13:22:00 > twentytwo minutes past one o'clock PM
17:43:00 > seventeen minutes to six o'clock PM
00:09:00 > nine minutes past twelve o'clock AM
Regeln
Die Ausgabe von Zahlen kann in Form von zweiundvierzig oder zweiundvierzig erfolgen, je nachdem, was Ihnen am besten gefällt. Standardlücken sind nicht erlaubt. Nachgestellte Zeilenumbrüche sind zulässig, der Satz sollte sich jedoch in einer Zeile befinden.
Die Eingabe kann in jedem Format gesendet werden Sie wollen, zum Beispiel HH:MM:SS
, HH,MM,SS
, HHMMSS
, HH/MM/SS
, oder jede Variante ohne Sekunden, aber man sollte das Eingabeformat in Ihrer Antwort klar machen. Es ist nicht zur Ausgabe benötigt one minute
stattone minutes
Für Minuten von 0 bis 30 (0 und 30 enthalten) sollten Sie verwenden past
, und für die anderen sollten Sie verwendento
Da die Zeit relativ ist, gewinnt der kürzeste Code in Bytes.
quelle
forty-five
wenn in den Testfällen eindeutigquarter to
das entsprechende Eingabeformat angegeben ist? (ändere es einfach in zweiundvierzig;)) Auch die Kolmogorov-Komplexität ist kein geeignetes Tag.one
bis verwendentwenty-nine
,quarter
ersetzenfifteen
undhalf
darstellenthirty
, aber das ist nicht klar. Auch für zukünftige Fragen empfehle ich der Sandbox von Herzen , die Knicke vor dem Posten zu klären .Antworten:
Javascript,
384381 BytesCode-Snippet anzeigen
quelle
LaTeX, 466 Bytes
Rufen Sie das Makro
\f
wie\f[hour]{minutes}
folgt auf:quelle
\documentclass[a4paper,12pt]{article}
Python 2, 498 Bytes
Die Eingabe erfolgt als Funktionsargument. Erste Stunde und dann Minute, beide als Ganzzahl. Das Ergebnis wird auf dem Bildschirm angezeigt.
Probieren Sie es online! (mit leicht erweiterten Testfällen)
Das war ein ziemlich lustiger Golf. Obwohl all diese verschachtelten Ternaries mich ein bisschen verrückt gemacht haben ^^
Ich hatte vor, dies danach in Pyth zu tun, aber ich glaube nicht, dass ich dies im Moment (oder jemals) mental tun kann.
Ungolfed:
quelle
[x>12]
solltet sein[x>=12]
, 12:01 ist PM, nicht AMPerl 5,
367 361385 BytesVerstümmelt
Formatierte und Testfälle:
quelle
one minutes to one o' clock night
als Ausgabe für 00:01 stattone minutes past twelve o'clock AM
oderone minutes past twelve night
C 478 Bytes
Testfälle
Probieren Sie es hier aus .
quelle
00 00
die richtige Ausgabe00:00
gibt , während man gibtone minutes past twelve o'clock AM
, obwohl ich mir sicher bin, dass das etwas damit zu tun hat, wie man Eingaben analysiert.scanf
Wahrscheinlich parst '00: 00 'nicht, wie man hoffen könnte :)Batch,
779774752749 BytesÄndern Sie die zweite Zeile in "
set t=%1%time%
Standard" und sagen Sie die aktuelle Uhrzeit, wenn keine Uhrzeit angegeben ist.Bearbeiten: 22 Bytes durch Optimierung meiner
set/a
Anweisungen gespeichert . 3 Bytes gespart dank @ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ.Als ich meine ursprüngliche Version schrieb, habe ich den Fehler gemacht, die Zeit so zu sagen, wie ich es eigentlich sagen würde, dh nur auf genaue Stunden und Mitternacht und Mittag anstatt auf zwölf Nacht und zwölf Mittag:
quelle
midnight
undmidday
statttwelve night
und wiedertwelve noon
. Ich mag es wirklich, wie Sie gefälschte Erweiterungen und Namen in Ihrer for-Schleife verwenden.