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:15deberí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 minutelugar 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-fivecuando los casos de prueba indican claramentequarter toel formato de entrada apropiado? (simplemente cámbielo a cuarenta y dos;)) Además, la complejidad de kolmogorov no es una etiqueta apropiada.oneatwenty-nine, conquarterla sustituciónfifteenyhalfque 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
\fcomo\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 nightcomo salida para 00:01, en lugar deone minutes past twelve o'clock AMoone minutes past twelve nightC, 478 bytes
Casos de prueba
Pruébalo aquí .
fuente
00 00da la salida correcta, mientras que00:00daone minutes past twelve o'clock AM, aunque estoy seguro de que tiene algo que ver con cómo analiza la entrada.scanfprobablemente 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/adeclaraciones. 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
midnighty enmiddaylugar detwelve nightytwelve noon. Realmente me gusta cómo usas extensiones y nombres falsos en tu bucle for por cierto.