Mendhak / Code

Mentally calculate the day of the week, given a date in the current year

The Doomsday algorithm is a memory trick that lets you figure out the day of the week that a given date falls on. I’ll go over the simplest variation of this which is a good starting point, and requires refreshing just once a year.

The last day in February

For this year of writing (2023) the last day in February is the 28th and it falls on a Tuesday. This is the anchor day, and is the only variation you need to memorize for a given year.

The rest of the mnemonic stays the same every year. There will be a day in each month which also falls on that anchor day (Tuesday). Once you know where you are in a month, you can work forwards or backwards to figure out the day.

The Even Months

For the remaining even months in the year, just match the month number with itself.

All fall on the anchor day (Tuesday).

The Odd Months

For the odd months, remember this: “9 to 5 at 7-11”.

All fall on the anchor day (Tuesday).

January

For January, remember this: “3 out of 4”.

The anchor day is on the 3rd every 3 out of 4 years. It’s on the 4th on leap years.

That means for 2021, January 3rd falls on the anchor day (Tuesday).

March

If you look at a calendar, you’ll notice that all the dates in February and March fall on the same day.

That means just like February, March 28th falls on the anchor day (Tuesday). Even easier, any multiple of 7 in March will also match the anchor day.

Practice

You can now practice - pick a random date in the year. Figure out that month’s anchor day, then work towards the date.

Example: December 25th 2021.

  1. The 12th of the 12th month.
  2. December 12th is a Tuesday.
  3. 12 + 14 days = 26th is a Tuesday
  4. 25th is a Saturday

Example: September 15th 2021.

  1. 5th of the 9th month
  2. September 5th is a Tuesday
  3. 5 + 7 = 12th is a Tuesday.
  4. Plus a few more days, September 15th is a Wednesday

Advanced Doomsday - figure out the anchor day for a given year

It’s actually possible to figure out which day will be the anchor day, just by looking at the year itself. This is because the calendars repeat themselves every 400 years, and roughly you need to figure out the anchor day for the century, then the anchor day for the year, and then the anchor day for each month.

The algorithm for that is described here and is also on Wikipedia.

It’s too much effort for me so I just memorize the anchor day for the year at the beginning of each year.