Discordian календарь является альтернативой календарь , используемый Discordians.
- Дискордический год состоит из 5 сезонов, каждый из которых длится 73 дня: хаос, раздор, растерянность, бюрократия и последствия.
- Дискордическая неделя состоит из 5 дней: Sweetmorn, Boomtime, Pungenday, Prickle-Prickle и Setting Orange. Каждый год начинается с Sweetmorn (и в Хаосе).
- Каждый е ourth год (который Happe п о выравнивании с Грегом о РИАН прыжка да г s), дополнительный d ау вставляются между Хаосом 59 и Хаосом 60 под названием День Святого тиб в . Это вне Дискордской недели, то есть день после Дня святого Тиба будет Урожай Апельсин, за день до Prickle-Prickle.
- Григорианский и Дискордский календари выстраиваются в линию; оба начинаются в один и тот же день, который называется 1 января по григорианскому календарю, и хаос 1 - по дискорданскому.
- Первый год Богоматери раздора (YOLD 1) был 1166 г. до н.э. по григорианскому календарю, а это означает, что в этом году (2017 г. н.э.) YOLD 3183.
- Дискордский календарь также имеет праздники, но они не важны для этой задачи, и вы не должны выводить их или что-либо о них.
Напишите программу или функцию, которая выводит или возвращает сегодняшнюю дату (во время выполнения):
Today is Boomtime, the 16th day of Confusion in the YOLD 3183
Формат: "Today is $day_of_the_week, the $ordinal day of $season in the YOLD $year"
где $ day_of_the_week - это день недели с заглавной буквы (case-title), $ ordinal - это день сезона как порядковый номер (1-й, 2-й, 3-й, 4-й, ...), $ season - с большой буквы. (title-case) сезон, а $ year - это год.
Если ваша программа или функция выполняется в День Святого Тибра, она должна вместо этого выводить или возвращать "Today is St. Tib's Day in the YOLD $year"
.
Правила:
- Применяются стандартные лазейки.
- Если ваш выбранный язык не может получить текущую дату, он также может принять текущую григорианскую дату в любом приемлемом формате в качестве входных данных.
- Это код-гольф , выигрывает самый короткий код (для каждого языка).
- Задний пробел в порядке.
- Вопросы капитализации.
- Звонки
ddate
любым способом запрещены - Ваша программа должна гарантированно работать с 3067 до 3265 YOLD (с 1901 по 2099 г. н.э.), за пределами этого диапазона она может давать неправильные значения
Смотрите также:
- Малаклипс Младший. «Принципиальная дискордия, или Как я нашел богиню и что я сделал с ней, когда я ее нашел» . п. 00034
- ddate (1)
- Песочница пост для тех кто ее видит
Ответы:
Mathematica,
403401 байтВерсия для подсчета количества байтов: (удалены пробелы и символы новой строки - к сожалению, эта часть довольно сложная)
Версия для чтения:
Ответ может быть протестирована с произвольной даты, заменив
DateString@"ISOOrdinalDate"
наDateString[{year,month,day},"ISOOrdinalDate"]
наyear
,month
иday
заменены числами.источник
Python 2, 423 байта
Укороченная версия:
Более длинная, более читаемая форма:
Обновление: исправлено с помощью замечательных @Neil и @EriktheOutgolfer. Но ответ @Jonathans намного короче.
источник
y%4<1
будет работать, но я не думаю, что1-y%4
будет.e
переменную?Python 2 , 346 байт
Примечание: это гольф (и исправление) ответа jammon - изначально я думал, что отправлю комментарий, но в конце я немного изменился (плюс суффиксы дня были исправлены).
Попробуйте онлайн! или посмотрите некоторые жестко запрограммированные даты испытаний .
источник
e%10*(e/9!=1)
работает?11st
,12st
и13st
(когдаe/9
1 будет умножено на ноль иmin
выберет этот ноль)JavaScript (ES6),
387380 байтПринимает необязательный параметр даты. Ungolfed:
источник
C #, 392 байта
Полная / Отформатированная версия:
источник
Pyth , 295 байт
Примечание: содержит двоичный файл, который может быть небезопасным для копирования-вставки отсюда. Копирование-вставка из TIO должно работать.
Попробуйте онлайн!
Вы можете проверить произвольные даты, заменив
.d2
в начале с 3-кортежем (год, месяц, день) , как это:(2020 2 29)
.Этот был немного раздражающим, так как у Пита нет никакого способа получить «день года», поэтому мне пришлось вычислить его самому.
источник