John Conway created the The Doomsday Calendar algorithm. It is a both a marvel of a mnemonic and a fun party
trick. The premise is this: given a date (e.g. Jan 1st, 1970
) one can calculate the day of
the week (e.g.
Thursday
). Let's get to it.
I like this mental tool because it takes a defined but difficult-to-answer problem ("Can you tell me the day of the week, from 6 months ago, without looking at your calendar?") and answers it with "I have defined a two part system to convert this into a brain-dead, three step solution" (with some exceptions, but we'll get to those).
The two part system is this:
AD
) of the year (a.k.a. "the doomsday"), which follows a
pattern similar to Leap
Years.AD
appears in.
Three three steps are:
AD
for the year given to youAD
in the month given to youAnchor Days follow a pattern of when a new year happens, we move forward one day of the week. In 2000,
the
AD
was Tuesday
. In 2001, the AD
was Wednesday
. 2002 is left
as an exercise for the reader.
When we get to 2004, a leap year, we are injecting an additional day into Our ("humanity's") calendar. Why? Because nothing is perfect: Earth's orbit is not a perfect 365 days-- it is closer to 365.25. So every 4 years we correct our week day calendar system by appending a day to February.
How does the Doomsday Calendar algorithm solve this? Conway constructed his solution by adding a conditional clause to his mnemonic system. I'm going to say it: I think this is poor design and couples the two parts into one system. For me, dear reader, this makes the mnemonic system feel like two systems. So I'm going to tell you how I remember.
2003's AD
is Friday
. 2004, a leap year, has two ADs, depending on if you
are before/during
Feb 28, or
during/after Feb 29-- the AD
is Saturday
and then Sunday
.
To put it in the year-scope of this system: For every non-leap year, we move the AD
forward
by 1 day of the
week; for every leap year, we move the AD
forward by 2 days of the week.
That's it!
I'll elaborate: each line is a way to know where the AD
appears in a certain month. Let's dive
in.
This is shorthand the months of September, March, July, and November, and their AD
s. There are
two pairs of
numbers: 9-to-5
and 7/11
. They are encoded: you get a two-for-one special at this
7/11 by reversing the
numbers. Here comes the logic.
9-to-5
is for September and May (9 and 5). September's fifth day, and May's ninth
day.
7/11
is
for July and
November (7 and 11). July's eleventh day, and November's seventh day.
To apply it to 2000, with an AD
of Tuesday
: May 9th is a Tuesday, July 11th is a
Tuesday,
September 7th is a
Tuesday, and (you guessed it) November 7th is a Tuesday.
I think this phrase is easy to remember because it causes me to think of a person working a normal job span, 9-5, at a gas station convenience store. Therefore, I've learned how to use knowledge I knew already for a different purpose, so very little mental load.
This one is easy: every even month (except February), that number of the month is the number of the day that
is the AD
. This is 4-4, 6-6, 8-8, 10-10, 12-12.
To apply it to 2000, with an AD
of Tuesday
: April 4th is a Tuesday, June 6th is a
Tuesday,
August 8th is a
Tuesday, October 10th is a Tuesday, and December 12th is a Tuesday.
This phrase is easy to remember because of the even numbers. Except February.
So that just leaves January, February, and March. 2 of the 3 fall on days that are easy to remember: pi day (3.14 for Americans), and Valentines day (February 14th). The only new one here is January 3rd. There's no good mnemonic, you gotta use rote memory techniques for that.
Here comes the truth you all have been waiting for: 2000 is a leap year. By my system, as
spoken of earlier,
there are two AD
s: Monday
for all days up to and including
February 28
and Tuesday
for all days
including
and following February 29
.
March 14th is after the leap day, so it is a Tuesday
. February 14th is before the leap day, so
it is a
Monday
, and January 3rd is a Monday
as well.
The three steps are:
AD
for the year given to youAD
in the month given to youLet's pick 2017, May 1st.
AD
Time is a construct and is relative, so we must start anchored to reality. 2000's AD
is
Monday/Tuesday.
Between 2000 and 2017, there are 17 years with 4 of them being leap years (2004, 2008, 2012, 2016).
17 with an extra 4. 17 + 4 = 21
, So we must advance 21 days in the week day cycle from Tuesday
as our
AD
.
(For you more Pure Maths people, pardon the words) The week is 7 days, so if we remove 7 from
21
, we have 14
days to increase by, but we are back to Tuesday as our AD
. We do this again to reduce
14
to 7
,
and AD
is
still Tuesday
. Once more, and we are done: the AD
is Tuesday for 2017.
If there are readers in the audience who know their modulo math (a different topic from this post), you knew this answer.
AD
in the month given to youRemember our mnemonics.
9-5 at 7/11.
May is the 5th month, so 2017-05-09 is a Tuesday.
I say this level because I'm confident I remember myself, as a middle school student, being asked "hey, today is the 9th, what day of the week was the 1st?" or some variant.
If today is a Tuesday, and it is the 9th, that means the 2nd was a Tuesday. So May 1st, 2017 was a Monday.
Go. Rush to your calendar and check; my next trick: the lottery.
I have defined this with an estimate, which lead us to an assumption, which causes exceptions with this tool. We are trying to map math onto the solar system.
The measure of time for Earth to complete an orbit does not fit 1:1 into the measure of time that passes in our day-night cycle. There are 365 days in a calendar year, but the Earth takes longer than that to complete its orbit. I estimated it to be 365.25 days to acknowledge the leap year in this post; my goal is to explain the Doomsday Calendar algorithm, not the history of Humankind's adventures with the calendar.
This estimate of 365.25 days is not true, it's actually an over correction. For brevity, here are the rules:
2000 is a leap year, 2100 is not a leap year. Everything defined in this post work exactly; we were looking in the time range of 2000-2017, which is myopic for this algorithm. You now have the tools to calculate the day of the week in 1332: good to know when the red-letter day falls.
This method is only good if it lives in your brain, so write down a couple dates and prove out the system. It's fun to crack out the dates, and it's very useful for when people are planning meeting 3 months ago and you can tell them "no, that's on a Saturday, let's do the day before." Also good for parties to tell people when their birthday falls.