Problema
Un día, tu jefe se te acerca y te dice que necesita saber la hora. Todavía insiste después de que usted señala el reloj directamente sobre su cabeza, y confiesa que tiene un caso grave de discalculia , lo que hace que ni siquiera pueda ver los números en un reloj. Si bien todavía te preguntas cómo alguien que no puede ver los números puede administrar una empresa, te dice que "hagas algo al respecto", sea lo que sea.
Su tarea ahora es crear un programa o función que, dado un tiempo de entrada con horas y minutos (los segundos son opcionales) (las horas están basadas en 24), genera una oración legible en inglés que no contiene números.
No es necesario superar los segundos.
Por ejemplo, 08:45:15
debería dar salidaquarter to nine o'clock AM
Casos de prueba
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
Reglas
Los números de salida pueden tener la forma de cuarenta y dos o cuarenta y dos, lo que más le guste. Las lagunas estándar no están permitidas. Se permiten nuevas líneas al final, pero la oración debe estar en 1 línea.
La entrada puede estar en cualquier formato que desee, por ejemplo HH:MM:SS
, HH,MM,SS
, HHMMSS
, HH/MM/SS
, o cualquier variante sin segundos, pero se debe hacer el formato de entrada claro en su respuesta. No es necesario dar salida en one minute
lugar deone minutes
para los minutos que van del 0 al 30 (0 y 30 incluidos) debe usar past
, y para los demás debe usarto
Como el tiempo es relativo, gana el código más corto en bytes.
fuente
forty-five
cuando los casos de prueba indican claramentequarter to
el formato de entrada apropiado? (simplemente cámbielo a cuarenta y dos;)) Además, la complejidad de kolmogorov no es una etiqueta apropiada.one
atwenty-nine
, conquarter
la sustituciónfifteen
yhalf
que representathirty
, pero eso no es clara. Además, para futuras preguntas, recomiendo encarecidamente el Sandbox para resolver los problemas antes de publicar.Respuestas:
Javascript,
384381 bytesMostrar fragmento de código
fuente
LaTeX, 466 bytes
Simplemente llame a la macro
\f
como\f[hour]{minutes}
, aquí algunas pruebas:fuente
\documentclass[a4paper,12pt]{article}
Python 2, 498 bytes
La entrada viene como argumento de función. Primera hora y luego minuto, ambos como entero. El resultado se imprime en la pantalla.
Pruébalo en línea! (con casos de prueba ligeramente extendidos)
Ese fue un golf bastante divertido. Aunque todos esos ternarios anidados me volvieron un poco loco ^^
Estaba planeando hacer esto en Pyth después de esto, pero no creo que sea mentalmente capaz de hacer esto en este momento (o nunca).
Sin golf:
fuente
[x>12]
ser[x>=12]
, las 12:01 son PM, no AMPerl 5,
367 361385 BytesConfuso
Formateado y casos de prueba:
fuente
one minutes to one o' clock night
como salida para 00:01, en lugar deone minutes past twelve o'clock AM
oone minutes past twelve night
C, 478 bytes
Casos de prueba
Pruébalo aquí .
fuente
00 00
da la salida correcta, mientras que00:00
daone minutes past twelve o'clock AM
, aunque estoy seguro de que tiene algo que ver con cómo analiza la entrada.scanf
probablemente no analiza '00: 00 'como cabría esperar :)Lote,
779774752749 bytesCambie la segunda línea a
set t=%1%time%
predeterminada para decir la hora actual si no se proporciona la hora.Editar: ahorré 22 bytes al optimizar mis
set/a
declaraciones. Guardado 3 bytes gracias a @ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ.Cuando escribí mi versión original, cometí el error de decir la hora como realmente la diría, es decir, en punto solo a las horas exactas, y a la medianoche y al mediodía en lugar de las doce de la noche y las doce del mediodía:
fuente
midnight
y enmidday
lugar detwelve night
ytwelve noon
. Realmente me gusta cómo usas extensiones y nombres falsos en tu bucle for por cierto.