Добрый день, PPCG! Quelle heure Est-il? Это означает, сколько времени по-французски, потому что это именно то, о чем идет речь.
Время разговора по-французски (по крайней мере, формально) немного отличается от времени разговора по-английски. Время начинается с Il Est (оно есть). Затем вы кладете час с последующим Heures (часы). (Если вы не знаете французские цифры, вот список: http://blogs.transparent.com/french/french-numbers-learn-how-to-count-from-1-to-1000/ ). Если это 1 часов, сделать ипе Heure для этого. Для полудня используйте midi (без heures), а для полуночи используйте minuit .
Если минуты не равны 00, вы следуете за ним с количеством минут. Однако есть несколько исключений. В течение 15 минут вы хотите сказать « эт кварт» , а в течение 30 минут - « эт деми» . Для чего-либо через 30 минут вы увеличиваете номер часа на единицу, затем добавляете слово moins и 60 - минуты. Таким образом, 6:40 вечера - это то, что происходит в сентябре (vingt = 20). 45 минут будут моими вечерами .
Наконец, вы заканчиваете это временем суток. На утро (с 1:00 до 12:00) вы говорите: du matin . В течение дня (субъективно, но я определю это как с 13:00 до 17:00), вы говорите, что de l'apres-midi (технически должен быть акцент выше e, но eh). И на ночь (с 5 вечера до 12 утра) вы говорите дю суар . Обратите внимание, что для полуночи и полудня ( минут и миди ) вы не ставите ни одно из этих значений позже - время суток подразумевается в зависимости от того, какое из них вы используете.
Как вы, вероятно, уже убедились, задача состоит в том, чтобы распечатать текущее местное время на французском языке, используя эти правила. Вот как должен выглядеть пример вывода в разное время. (Время в скобках не обязательно должно быть напечатано, оно просто там, чтобы вы знали, сколько сейчас):
Il est sept heures du matin. (7:00 A.M)
Il est deux heures de l'apres-midi. (2:00 P.M)
Il est une heure du matin. (1:00 A.M)
Il est huit heures du soir. (8:00 P.M)
Il est midi. (12:00 P.M, Noon)
Il est minuit. (12:00 A.M, Midnight)
Il est cinq heures vingt du soir. (5:20 P.M)
Il est six heures et quart du matin. (6:15 A.M)
Il est neuf heures et demi du matin. (9:30 A.M)
Il est quatre heures moins dix de l'apres-midi. (3:50 P.M, not 4:50!)
Il est midi moins le quart. (11:45 A.M)
Это код-гольф, поэтому выигрывает самый короткий код. Удачи!
РЕДАКТИРОВАТЬ: период требуется.
источник
Il est huit heures quarante et une du matin
(правильно) илиIl est neuf heures moins dix-neuf du matin
(звучит странно)?après-midi
? Мы можем?Ответы:
PHP -
521473 байтаЯ добавил несколько строк для удобства чтения:
Метод , используемый для преобразования числа его позицией на французском языке вдохновлен этот ответ на другой вызов по edc65 .
Вот негольфированная версия:
источник
Питон 3,
586547556506505502498497493 байтаМоя первая попытка игры в гольф. Я действительно не уверен в том, как я выберу, особенно в
n
списке. Но я хотел попробовать.Ungolfed:
источник
'minuit#une#deux#...#vingt-neuf#et demi'.split('#')
. Может быть даже короче, чтобы просто сжать нить как-то.Javascript (ES6),
506495 байтРедактировать: Сжатый,
a
чтобы сохранить несколько байтов.Объяснение:
источник
C
860 835794 байтаАбсолютно ужасно, но, вероятно, можно сделать еще короче. Многие новые строки были добавлены для форматирования на этом сайте. Фактический исходный код содержит символы новой строки после #include и #defines, но все, начиная с char * до последнего w (". \ N");} - все в одной строке. Я сократил его, удалив значения из 22, ..., 29 в строковом массиве, вместо этого повторно использовав строки для 2, ..., 9 и добавив "vingt-" в случае необходимости. (Я действительно надеюсь, что я не представил ошибку!)
Как это:
Версия без поддержки, без «оптимизации пространства» (тоже довольно уродливая):
(#If 0 был просто для тестирования различных значений времени через командную строку).
источник