Problème
Un jour, votre patron s'approche de vous et vous dit qu'il a besoin de connaître l'heure. Il insiste toujours après que vous ayez pointé l'horloge directement au-dessus de votre tête, et avoue qu'il a un cas sévère de dyscalculie , ce qui l' empêche même de voir les chiffres sur une horloge. Alors que vous vous demandez toujours comment une personne incapable de voir les chiffres peut diriger une entreprise, il vous dit de "faire quelque chose", quoi que ce soit.
Votre tâche consiste maintenant à créer un programme ou une fonction qui, étant donné un temps d'entrée avec des heures et des minutes (les secondes sont facultatives) (les heures sont basées sur 24), génère une phrase anglaise lisible, qui ne contient pas de chiffres.
Il n'est pas nécessaire de sortir les secondes.
Par exemple, 08:45:15
devrait sortirquarter to nine o'clock AM
Cas de test
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
Règles
La sortie des nombres peut être à la fois sous la forme de quarante-deux ou quarante-deux, selon ce que vous préférez. Les échappatoires standard ne sont pas autorisées. Les sauts de ligne sont autorisés, mais la phrase doit être sur 1 ligne.
L' entrée peut être dans un format que vous voulez, par exemple HH:MM:SS
, HH,MM,SS
, HHMMSS
, HH/MM/SS
ou toute variante sans secondes, mais vous devez faire le format d'entrée clair dans votre réponse. Il n'est pas nécessaire de sortir one minute
au lieu deone minutes
pendant des minutes allant de 0 à 30 (0 et 30 inclus), vous devez utiliser past
, et pour les autres, vous devez utiliserto
Parce que le temps est relatif, le code le plus court en octets gagne.
la source
forty-five
lorsque les cas de test indiquent clairementquarter to
que le format d'entrée approprié? (il suffit de le changer en quarante-deux;)) En outre, kolmogorov-complexité n'est pas une balise appropriée.one
àtwenty-nine
, avecquarter
remplacementfifteen
ethalf
représentationthirty
, mais ce n'est pas clair. De plus, pour les questions futures, je recommande vivement le bac à sable pour résoudre les problèmes avant de publier.Réponses:
Javascript,
384381 octetsAfficher l'extrait de code
la source
LaTeX, 466 octets
Appelez simplement la macro
\f
comme\f[hour]{minutes}
, voici quelques tests:la source
\documentclass[a4paper,12pt]{article}
Python 2, 498 octets
L'entrée est un argument de fonction. Première heure puis minute, toutes deux sous forme d'entier. Le résultat est imprimé à l'écran.
Essayez-le en ligne! (avec des cas de test légèrement étendus)
C'était un golf assez amusant. Bien que tous ces ternaires imbriqués m'aient rendu un peu fou ^^
Je prévoyais de le faire en Pyth après cela, mais je ne pense pas que je suis mentalement capable de le faire pour le moment (ou jamais).
Non golfé:
la source
[x>12]
devrais être[x>=12]
, 12 h 01 est PM, pas AMPerl 5,
367 361385 octetsBrouillé
Cas formatés et tests:
la source
one minutes to one o' clock night
comme sortie pour 00:01, au lieu deone minutes past twelve o'clock AM
ouone minutes past twelve night
C, 478 octets
Cas de test
Essayez-le ici .
la source
00 00
donne la sortie correcte, tout en00:00
donneone minutes past twelve o'clock AM
, bien que je sois sûr que cela a quelque chose à voir avec la façon dont vous analysez les entrées.scanf
n'analyse probablement pas '00: 00 'comme on pourrait l'espérer :)Lot,
779774752749 octetsRemplacez la deuxième ligne par
set t=%1%time%
défaut pour dire l'heure actuelle si aucune heure n'est fournie.Edit: économisé 22 octets en optimisant mes
set/a
relevés. Sauvegardé 3 octets grâce à @ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ.Quand j'ai écrit ma version originale, j'ai fait l'erreur de dire l'heure comme je le dirais en fait, c'est-à-dire uniquement sur les heures exactes, et minuit et midi au lieu de douze nuits et midi:
la source
midnight
etmidday
au lieu detwelve night
ettwelve noon
. J'aime vraiment la façon dont vous utilisez de fausses extensions et noms dans votre boucle for btw.