User Rating 0.0 β˜…β˜…β˜…β˜…β˜…
Total Usage 0 times
Category Calendars
Select or type a date
Leave blank for default output
Presets:
Select a date and press Convert
Is this tool helpful?

Your feedback helps us improve.

β˜… β˜… β˜… β˜… β˜…

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.

discordian calendar ddate discordianism calendar converter YOLD principia discordia eris

Formulas

The Discordian year is computed by offsetting the Gregorian year:

YOLD = Ygregorian + 1166

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:

Nβ€² = N βˆ’ 1

Season index (0-4) and day within season (1-73):

season = floor(Nβ€² βˆ’ 173)
day = ((Nβ€² βˆ’ 1) mod 73) + 1

The Discordian week cycles every 5 days, starting from Sweetmorn on day 1 of year 1:

weekday = (Nβ€² βˆ’ 1) mod 5

Holydays occur on the 5th day (Apostle Holyday) and 50th day (Season Holyday) of each season. Leap year detection follows standard Gregorian rules:

leap = (Y mod 4 = 0) ∧ (Y mod 100 β‰  0 ∨ Y mod 400 = 0)

Where Y = Gregorian year, N = day of year, Nβ€² = adjusted day of year (leap correction), YOLD = Year of Our Lady of Discord.

Reference Data

SeasonAbbr.Gregorian StartGregorian EndApostle Holyday (5th)Season Holyday (50th)
ChaosChsJanuary 1March 14MungdayChaoflux
DiscordDscMarch 15May 26MojodayDiscoflux
ConfusionCfnMay 27August 6SyadayConfuflux
BureaucracyBcyAugust 7October 18ZaradayBureflux
The AftermathAfmOctober 19December 31MaladayAfflux
Day of WeekAbbr.Cycle Position
SweetmornSM1
BoomtimeBT2
PungendayPD3
Prickle-PricklePP4
Setting OrangeSO5
Format CodeOutputExample
%AFull day nameSweetmorn
%aAbbreviated daySM
%BFull season nameChaos
%bAbbreviated seasonChs
%dDay number (ordinal)23
%eDay with suffix23rd
%YYOLD year3191
%HHolyday nameChaoflux
%NStop if not holyday -
%nNewline -
%tTab -
%{…%}St. Tib’s bracketReplaced on Tib’s

Frequently Asked Questions

In the Discordian calendar, St. Tib's Day (February 29) is inserted outside the normal 73-day season cycle. It has no weekday and belongs to no season. All days after it in a leap year are shifted back by 1 for the purpose of season and day-in-season calculation, so March 1 is still Chaos 60 regardless of leap year status. This tool performs that adjustment automatically.
The %N code acts as a conditional stop. If the current date is NOT a holyday, everything after %N in the format string is suppressed. This lets you append holyday-specific text (like 'Celebrate %H') that only appears on the 10 canonical holydays (the 5th and 50th of each season). If it IS a holyday, %N itself produces no output and the rest of the string prints normally.
The text enclosed between %{ and %} is replaced entirely with 'St. Tib's Day' if the current date falls on February 29 of a leap year. On any other date, the brackets are removed and the enclosed format codes are processed normally. This prevents nonsensical output like "Sweetmorn, the 0th of Chaos" on Tib's Day, since that day has no weekday or season.
The offset is a convention from the Principia Discordia, not a historical fact. It places the Erisian year zero at 1166 BCE. The Gregorian year 2025 becomes YOLD 3191. This is a fixed arithmetic offset with no astronomical or calendrical correction - no drift, no intercalation beyond what the Gregorian calendar already provides.
Yes. Unlike the original node-ddate library which was limited to post-epoch dates, this tool uses the browser's native Date object, which supports dates well before 1970. The Discordian algorithm itself is purely arithmetic and works for any positive Gregorian year. Dates before the adoption of the Gregorian calendar (October 15, 1582) use proleptic Gregorian rules.
Each of the 5 seasons has exactly 2 holydays. The Apostle Holyday falls on the 5th day of the season (Mungday, Mojoday, Syaday, Zaraday, Maladay). The Season Holyday falls on the 50th day (Chaoflux, Discoflux, Confuflux, Bureflux, Afflux). In Gregorian terms, these map to fixed dates in non-leap years: for example, Mungday is always January 5, and Chaoflux is always February 19.