Gregorian to Discordian Date Converter
Convert any Gregorian date to the Discordian calendar. Get season, day, YOLD year, holydays, and custom format strings instantly.
About
The Discordian calendar, codified in the Principia Discordia (1963), divides each year into 5 seasons of 73 days: Chaos, Discord, Confusion, Bureaucracy, and The Aftermath. Years are counted from 1166 BCE, the supposed founding of the Erisian tradition, producing the Year of Our Lady of Discord (YOLD = Gregorian year + 1166). A critical edge case is St. Tibβs Day: on leap years, February 29 is inserted outside the normal day count, meaning it belongs to no season and no weekday. Mishandling this produces off-by-one errors that cascade through every subsequent date in that year. This converter implements the same algorithm as the ddate utility from util-linux, including full format-string support with %A, %e, %B, %H, %N, and the %{β¦%} St. Tibβs Day bracketing mechanism.
The tool assumes proleptic Gregorian calendar rules for dates before 1582. Accuracy depends on the host systemβs Date object. Holyday detection covers all 10 canonical holydays (5 Apostle holydays on the 5th, 5 Season holydays on the 50th of each season). Pro tip: if you are formatting output for a ritual or zine, use the custom format field with %{β¦%} brackets to handle St. Tibβs Day text substitution correctly.
Formulas
The Discordian year is computed by offsetting the Gregorian year:
The day-of-year N (1-indexed, January 1 = 1) determines season and day-in-season. For leap years where N = 60 (February 29), the result is St. Tibβs Day, which exists outside the season/day system. For leap years where N > 60, the adjusted day is:
Season index (0-4) and day within season (1-73):
The Discordian week cycles every 5 days, starting from Sweetmorn on day 1 of year 1:
Holydays occur on the 5th day (Apostle Holyday) and 50th day (Season Holyday) of each season. Leap year detection follows standard Gregorian rules:
Where Y = Gregorian year, N = day of year, Nβ² = adjusted day of year (leap correction), YOLD = Year of Our Lady of Discord.
Reference Data
| Season | Abbr. | Gregorian Start | Gregorian End | Apostle Holyday (5th) | Season Holyday (50th) |
|---|---|---|---|---|---|
| Chaos | Chs | January 1 | March 14 | Mungday | Chaoflux |
| Discord | Dsc | March 15 | May 26 | Mojoday | Discoflux |
| Confusion | Cfn | May 27 | August 6 | Syaday | Confuflux |
| Bureaucracy | Bcy | August 7 | October 18 | Zaraday | Bureflux |
| The Aftermath | Afm | October 19 | December 31 | Maladay | Afflux |
| Day of Week | Abbr. | Cycle Position |
|---|---|---|
| Sweetmorn | SM | 1 |
| Boomtime | BT | 2 |
| Pungenday | PD | 3 |
| Prickle-Prickle | PP | 4 |
| Setting Orange | SO | 5 |
| Format Code | Output | Example |
|---|---|---|
%A | Full day name | Sweetmorn |
%a | Abbreviated day | SM |
%B | Full season name | Chaos |
%b | Abbreviated season | Chs |
%d | Day number (ordinal) | 23 |
%e | Day with suffix | 23rd |
%Y | YOLD year | 3191 |
%H | Holyday name | Chaoflux |
%N | Stop if not holyday | - |
%n | Newline | - |
%t | Tab | - |
%{β¦%} | St. Tibβs bracket | Replaced on Tibβs |