Der Discordian-Kalender ist ein alternativer Kalender, der von Discordianern verwendet wird.
- Das Jahr der Zwietracht hat fünf Jahreszeiten mit einer Dauer von jeweils 73 Tagen: Chaos, Zwietracht, Verwirrung, Bürokratie und Nachwirkungen.
- Die diskordische Woche hat 5 Tage: Sweetmorn, Boomtime, Pungenday, Prickle-Prickle und Setting Orange. Jedes Jahr beginnt mit Sweetmorn (und im Chaos).
- Jedes f Ourth Jahr (die Happe n S mit Greg auszurichten o rian Sprung ja r s), ein zusätzlicher d ay zwischen Chaos 59 und 60 genannt Chaos eingefügt St. Tib Tag . Es liegt außerhalb der Diskordischen Woche, was bedeutet, dass der Tag nach dem Tibustag Orange wird, der Tag vor dem Prickeln.
- Die gregorianischen und diskordianischen Kalender stehen in einer Reihe; Beide beginnen am selben Tag, der im gregorianischen Kalender als 1. Januar und im diskordianischen als Chaos 1 bezeichnet wird.
- Das erste Jahr Unserer Lieben Frau der Zwietracht (YOLD 1) war 1166 v. Chr. Im Gregorianischen Kalender, was bedeutet, dass dieses Jahr (2017 n. Chr.) YOLD 3183 ist.
- Der Discordian-Kalender hat auch Feiertage, aber diese sind für diese Herausforderung nicht wichtig und Sie sollten sie nicht ausgeben oder irgendetwas darüber.
Schreiben Sie ein Programm oder eine Funktion, die das heutige Datum ausgibt oder zurückgibt (zum Zeitpunkt der Ausführung):
Today is Boomtime, the 16th day of Confusion in the YOLD 3183
Das Format lautet "Today is $day_of_the_week, the $ordinal day of $season in the YOLD $year"
: $ day_of_the_week ist der großgeschriebene Wochentag, $ ordinal ist der Tag der Jahreszeit als Ordinal (1., 2., 3., 4., ...), $ season ist der großgeschriebene Wochentag (Titel-Fall) Saison und $ Jahr ist das Jahr.
Wenn Ihr Programm oder Ihre Funktion am Tibustag ausgeführt wird, sollte es stattdessen ausgegeben oder zurückgegeben werden "Today is St. Tib's Day in the YOLD $year"
.
Regeln:
- Es gelten Standardlücken.
- Wenn Ihre Sprache nicht in der Lage ist, das aktuelle Datum zu ermitteln, wird möglicherweise auch das aktuelle gregorianische Datum in einem angemessenen Format als Eingabe verwendet.
- Dies ist Code-Golf , der kürzeste Code (pro Sprache) gewinnt.
- Nachgestellte Leerzeichen sind in Ordnung.
- Kapitalisierung Angelegenheiten.
- Anrufe
ddate
in irgendeiner Form sind verboten - Es sollte gewährleistet sein, dass Ihr Programm von 3067 bis 3265 YOLD (1901 bis 2099 AD) funktioniert. Außerhalb dieses Bereichs können falsche Werte angegeben werden
Siehe auch:
- Malaclypse der Jüngere. "Principia Discordia, oder wie ich die Göttin gefunden habe und was ich ihr angetan habe, als ich sie gefunden habe" . p. 00034
- Datum (1)
- Sandbox-Post für diejenigen, die es sehen können
Antworten:
Mathematica,
403401 BytesVersion, um die Anzahl der Bytes zu zählen: (Leerzeichen und Zeilenumbrüche entfernt - leider ist dieser Teil ziemlich schwer)
Version zu lesen:
Die Antwort kann durch Ersetzen
DateString@"ISOOrdinalDate"
durch mit einem beliebigen Datum getestet werdenDateString[{year,month,day},"ISOOrdinalDate"]
füryear
,month
undday
ersetzt durch die Zahlen.quelle
Python 2, 423 Bytes
Kurzfassung:
Längere, besser lesbare Form:
Update: Mit Hilfe der tollen @Neil und @EriktheOutgolfer behoben. Aber @Jonathans Antwort ist viel kürzer.
quelle
y%4<1
würde funktionieren, aber ich glaube nicht1-y%4
.e
Variable entfernen ?Python 2 , 346 Bytes
Hinweis: Dies ist ein Golf (und eine Korrektur) von Jammons Antwort - ich dachte ursprünglich, ich würde einen Kommentar einreichen, aber ich habe mich am Ende ziemlich verändert (plus die Tag-Suffixe wurden korrigiert).
Probieren Sie es online! oder sehen Sie einige fest codierte Testdaten .
quelle
e%10*(e/9!=1)
funktioniert?11st
,12st
und13st
(wenne/9
1 ist, würde es mit Null multiplizieren und dasmin
würde diese Null auswählen)JavaScript (ES6),
387.380ByteNimmt einen optionalen Datumsparameter an. Ungolfed:
quelle
C #, 392 Bytes
Voll / Formatierte Version:
quelle
Pyth , 295 Bytes
Hinweis: Enthält Binärdateien. Das Kopieren und Einfügen von hier ist möglicherweise nicht sicher. Das Kopieren und Einfügen von TIO sollte funktionieren.
Probieren Sie es online!
Sie können beliebige Daten testen, indem Sie
.d2
zu Beginn ein 3-Tupel (Jahr, Monat, Tag) wie folgt ersetzen :(2020 2 29)
.Dies war ein bisschen nervig, da Pyth keine Möglichkeit hat, "Tag des Jahres" zu bekommen, also musste ich es selbst berechnen.
quelle