проблема
Однажды, ваш босс подходит к вам и говорит, что ему нужно знать время. Он по-прежнему настаивает на том, чтобы вы указали на часы прямо над вашей головой, и признается, что у него тяжелый дискалькулия , из-за которого он даже не может видеть цифры на часах. Хотя вы все еще удивляетесь, как кто-то, кто не может видеть цифры, может управлять компанией, он говорит вам «что-то с этим делать», что бы это ни было.
Теперь ваша задача - создать программу или функцию, которая при заданном времени ввода с часами и минутами (секунды необязательны) (часы основаны на 24) выводит удобочитаемое английское предложение, которое не содержит цифр.
Нет необходимости выводить секунды.
Например, 08:45:15
должен выводитьquarter to nine o'clock AM
Контрольные примеры
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
правила
Вывод чисел может быть как в форме сорок два, так и в сорок два, в зависимости от того, что вам больше нравится. Стандартные лазейки не допускаются. Конечные переводы строк разрешены, но предложение должно быть в 1 строке.
Входные данные могут быть в любом формате , который вы хотите, например HH:MM:SS
, HH,MM,SS
, HHMMSS
, HH/MM/SS
или любой вариант без секунд, но вы должны сделать формат ввода ясно в своем ответе. Не нужно выводить one minute
вместоone minutes
в течение минут от 0 до 30 (включая 0 и 30) вы должны использовать past
, а для остальных -to
Поскольку время относительно, выигрывает самый короткий код в байтах.
источник
forty-five
когда контрольные примеры четко указываютquarter to
на подходящий формат ввода? (просто измените его на сорок два;)) Кроме того, колмогоровская сложность не подходит тегу.one
вtwenty-nine
, сquarter
заменойfifteen
иhalf
представляяthirty
, но это не ясно. Кроме того, для будущих вопросов, я от всей души рекомендую Песочницу, чтобы решить изломы перед публикацией.Ответы:
Javascript,
384381 байтПоказать фрагмент кода
источник
LaTeX, 466 байт
Просто вызовите макрос
\f
как\f[hour]{minutes}
, вот некоторые тесты:источник
\documentclass[a4paper,12pt]{article}
Python 2, 498 байт
Ввод поступает как аргумент функции. Первый час, а затем минута, оба как целые числа. Результат выводится на экран.
Попробуйте онлайн! (со слегка расширенными тестовыми кейсами)
Это был довольно веселый гольф. Хотя все эти вложенные троицы сводили меня с ума… ^^
Я планировал сделать это в Pyth после этого, но я не думаю, что я в состоянии сделать это в данный момент (или когда-либо).
Ungolfed:
источник
[x>12]
должны быть[x>=12]
, 12:01 вечера, а не утраPerl 5,
367 361385 байтИскажения
Отформатированные и тестовые случаи:
источник
one minutes to one o' clock night
результат за 00:01 вместоone minutes past twelve o'clock AM
илиone minutes past twelve night
C, 478 байт
Тестовые случаи
Попробуй это здесь .
источник
00 00
дает правильный вывод, хотя00:00
даетone minutes past twelve o'clock AM
, хотя я уверен, что это как-то связано с тем, как вы анализируете ввод.scanf
вероятно, не разбирает '00: 00', как можно было бы надеяться :)Пакетный,
779774752749 байтИзмените вторую строку на
set t=%1%time%
по умолчанию, указав текущее время, если время не указано.Изменить: 22 байта сохранены путем оптимизации моих
set/a
заявлений. Сохранено 3 байта благодаря @ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ.Когда я писал свою оригинальную версию, я допустил ошибку, говоря время так, как я бы это сказал, т.е. часы только в точные часы, а также полночь и полдень вместо двенадцати ночи и двенадцати часов дня:
источник
midnight
аmidday
неtwelve night
иtwelve noon
. Мне очень нравится, как вы используете поддельные расширения и имена в вашем цикле for кстати.