Le calendrier Discordien est un calendrier alternatif utilisé par les Discordiens.
- L'année discordienne a 5 saisons, chacune d'une durée de 73 jours: Chaos, Discord, Confusion, Bureaucracy et The Aftermath.
- La semaine discordienne a 5 jours: Sweetmorn, Boomtime, Pungenday, Prickle-Prickle et Setting Orange. Chaque année commence avec Sweetmorn (et dans Chaos).
- Chaque f UATRIÈME année (qui happe n s aligner avec Greg o saut rian oui r s), un supplément d ay est inséré entre Chaos 59 et 60 Chaos appelé le jour de Saint - Tib . C'est en dehors de la semaine discordienne, ce qui signifie que le lendemain du jour de la Saint-Tib sera Setting Orange, la veille de Prickle-Prickle.
- Les calendriers grégorien et discordien s'alignent; les deux commencent le même jour, qui est appelé le 1er janvier dans le calendrier grégorien, et Chaos 1 dans le calendrier discordien.
- La première année de Notre-Dame de la Discorde (YOLD 1) était 1166 BC dans le calendrier grégorien, ce qui signifie que cette année (2017 AD) est YOLD 3183.
- Le calendrier discordien a également des jours fériés, mais ils ne sont pas importants pour ce défi et vous ne devez pas les publier ou quoi que ce soit à leur sujet.
Écrivez un programme ou une fonction qui génère ou renvoie la date du jour (au moment de l'exécution):
Today is Boomtime, the 16th day of Confusion in the YOLD 3183
Le format est "Today is $day_of_the_week, the $ordinal day of $season in the YOLD $year"
, où $ day_of_the_week est le jour de la semaine en majuscule (titre-cas), $ ordinal est le jour de la saison en tant qu'ordinal (1er, 2e, 3e, 4e, ...), $ season est le capitalisé (titre-cas) saison, et $ année est l'année.
Si votre programme ou votre fonction est exécutée le jour de la Saint-Tib, elle devrait plutôt sortir ou retourner "Today is St. Tib's Day in the YOLD $year"
.
Règles:
- Des échappatoires standard s'appliquent.
- Si la langue de votre choix n'a aucun moyen d'obtenir la date actuelle, elle peut également prendre la date grégorienne actuelle dans n'importe quel format raisonnable comme entrée.
- C'est le code-golf , le code le plus court (par langue) l'emporte.
- La fin des espaces blancs est acceptable.
- La capitalisation est importante.
- Appeler
ddate
de quelque façon que ce soit est interdit - Votre programme doit être garanti pour fonctionner de 3067 à 3265 YOLD (1901 à 2099 AD), en dehors de cette plage, il peut donner des valeurs incorrectes
Voir également:
- Malaclypse The Younger. "Principia Discordia, ou comment j'ai trouvé la déesse et ce que je lui ai fait quand je l'ai trouvée" . p. 00034
- date (1)
- Poteau de bac à sable pour ceux qui peuvent le voir
Réponses:
Mathematica,
403401 octetsVersion pour compter le nombre d'octets: (espaces supprimés et sauts de ligne - malheureusement cette partie est assez difficile)
Version à lire:
La réponse peut être testé avec la date arbitraire en remplaçant
DateString@"ISOOrdinalDate"
parDateString[{year,month,day},"ISOOrdinalDate"]
desyear
,month
etday
remplacés par des numéros.la source
Python 2, 423 octets
Version courte:
Forme plus longue et plus lisible:
Mise à jour: corrigé avec l'aide des grands @Neil et @EriktheOutgolfer. Mais la réponse de @Jonathan est beaucoup plus courte.
la source
y%4<1
fonctionnerait, mais je ne pense pas1-y%4
.e
variable?Python 2 , 346 octets
Remarque: il s'agit d'un golf (et d'une correction) de la réponse de jammon - à l'origine, je pensais soumettre un commentaire, mais j'ai finalement changé un peu (en plus, les suffixes de jour ont été corrigés).
Essayez-le en ligne! ou consultez des dates de test codées en dur .
la source
e%10*(e/9!=1)
marche?11st
,12st
et13st
(quande/9
est 1 il se multiplierait par zéro et lemin
ramasserait ce zéro)JavaScript (ES6),
387380 octetsPrend un paramètre de date facultatif. Non golfé:
la source
C #, 392 octets
Version complète / formatée:
la source
Pyth , 295 octets
Remarque: contient du binaire, il n'est peut-être pas sûr de copier-coller à partir d'ici. Le copier-coller de TIO devrait fonctionner.
Essayez-le en ligne!
Vous pouvez tester les dates arbitraires en remplaçant
.d2
au début d'un 3-tuple de (année, mois, jour) comme ceci:(2020 2 29)
.Celui-ci était un peu ennuyeux car Pyth n'a aucun moyen d'obtenir le "jour de l'année", j'ai donc dû le calculer moi-même.
la source