leo.blog();

Discordian calendar

Date format

A good way to format discordian dates is the following.

Today is Setting Orange, the 39th day of Confusion in the Year of Our Lady Discord 3190

or

Today is Setting Orange, the 39th day of Confusion in the YOLD 3190

Python script

I used to follow a bot on twtxt that would post the current date in the Discordian calendar every day. I really enjoyed it at the time, but when I checked it out again recently, it no longer existed. So I decided to write my own script to enumerate the Discordian calendar.

My script doesn’t have a fancy algorithm to convert arbitrary dates between the Gregorian and Discordian calendars. It just starts from a reference date and follows the rules of the Discordian calendar to enumerate the dates.

This is okay, computers are fast and we can precompute the entire calendar for for thousands of years in a few seconds. So this is pretty much a non-issue for me.

Below is the script I wrote, it will start from 1970-01-01 (heh, the Unix epoch), and print out the Discordian date for every day after that. Feel free to save the output to a file and use it as a reference.

import time
import datetime

SEASONS = [
    "Chaos",
    "Discord",
    "Confusion",
    "Bureaucracy",
    "The Aftermath",
]

WEEKDAYS = [
    "Sweetmorn",
    "Boomtime",
    "Pungenday",
    "Prickle-Prickle",
    "Setting Orange",
]

APOSTLE_HOLYDAYS = [
    "Mungday",
    "Mojoday",
    "Syaday",
    "Zaraday",
    "Maladay",
]

SEASONAL_HOLYDAYS = [
    "Chaoflux",
    "Discoflux",
    "Confuflux",
    "Bureflux",
    "Afflux",
]

REF_DATE = datetime.date(1970, 1, 1)

def discordian_dates():
    day_of_year = 0
    season = 0
    day = 0
    year = 3136

    total_days = 0

    while True:
        real_date = REF_DATE + datetime.timedelta(days=total_days)

        season_s = SEASONS[season]
        weekday_s = WEEKDAYS[day_of_year % 5]

        if day == 4:
            holyday = APOSTLE_HOLYDAYS[season]
            holyday = f"Apostle holyday: {holyday}"
        elif day == 49:
            holyday = SEASONAL_HOLYDAYS[season]
            holyday = f"Seasonal holyday: {holyday}"
        else:
            holyday = ""

        yield str(real_date), weekday_s, season_s, str(day + 1), f"{year} Year of Our Lady Discord", holyday

        if (year + 2) % 4 == 0 and season == 0 and day == 58:
            total_days += 1
            real_date = REF_DATE + datetime.timedelta(days=total_days)
            yield str(real_date), "St. Tib's Day", "", "", f"{year} Year of Our Lady Discord", ""

        day_of_year += 1
        day += 1
        total_days += 1

        if day == 73:
            day = 0
            season += 1
            if season == 5:
                season = 0
                year += 1
                day_of_year = 0



for parts in discordian_dates():
    justs = [10, 15, 13, 2, 30, 0]
    out = " | ".join([x.ljust(y) for x, y in zip(parts, justs)])
    print(out)

Here’s some sample output:

DateWeekdaySeasonDayYear of Our Lady DiscordHolyday
2023-09-01Prickle-PrickleBureaucracy253189 Year of Our Lady Discord
2023-09-02Setting OrangeBureaucracy263189 Year of Our Lady Discord
2023-09-03SweetmornBureaucracy273189 Year of Our Lady Discord
2023-09-04BoomtimeBureaucracy283189 Year of Our Lady Discord
2023-09-05PungendayBureaucracy293189 Year of Our Lady Discord
2023-09-06Prickle-PrickleBureaucracy303189 Year of Our Lady Discord
2023-09-07Setting OrangeBureaucracy313189 Year of Our Lady Discord
2023-09-08SweetmornBureaucracy323189 Year of Our Lady Discord
2023-09-09BoomtimeBureaucracy333189 Year of Our Lady Discord
2023-09-10PungendayBureaucracy343189 Year of Our Lady Discord
2023-09-11Prickle-PrickleBureaucracy353189 Year of Our Lady Discord
2023-09-12Setting OrangeBureaucracy363189 Year of Our Lady Discord
2023-09-13SweetmornBureaucracy373189 Year of Our Lady Discord
2023-09-14BoomtimeBureaucracy383189 Year of Our Lady Discord
2023-09-15PungendayBureaucracy393189 Year of Our Lady Discord
2023-09-16Prickle-PrickleBureaucracy403189 Year of Our Lady Discord
2023-09-17Setting OrangeBureaucracy413189 Year of Our Lady Discord
2023-09-18SweetmornBureaucracy423189 Year of Our Lady Discord
2023-09-19BoomtimeBureaucracy433189 Year of Our Lady Discord
2023-09-20PungendayBureaucracy443189 Year of Our Lady Discord
2023-09-21Prickle-PrickleBureaucracy453189 Year of Our Lady Discord
2023-09-22Setting OrangeBureaucracy463189 Year of Our Lady Discord
2023-09-23SweetmornBureaucracy473189 Year of Our Lady Discord
2023-09-24BoomtimeBureaucracy483189 Year of Our Lady Discord
2023-09-25PungendayBureaucracy493189 Year of Our Lady Discord
2023-09-26Prickle-PrickleBureaucracy503189 Year of Our Lady DiscordSeasonal holyday: Bureflux
2023-09-27Setting OrangeBureaucracy513189 Year of Our Lady Discord
2023-09-28SweetmornBureaucracy523189 Year of Our Lady Discord
2023-09-29BoomtimeBureaucracy533189 Year of Our Lady Discord
2023-09-30PungendayBureaucracy543189 Year of Our Lady Discord

Leave a Comment