Doomsday Method and Self-Test Program

(for working out weekdays from dates)

Introduction

The idea is to find the weekday of any date.

For a quick start, skip ahead to the heading The Doomsday Algorithm below.

Note that, in this context, "weekday" means any of the seven days, Sunday to Saturday, not just Monday to Friday.
Note also, that the year xx00 represents the first year of the century from xx00 to xx99. For example, 1900 to 1999, even though, in reality, centuries start with xx01. Therefore, to apply this method to the first century AD, the century must begin with the year 1 BC. However, for the method to work, 1 BC must be taken as 0000.
Weekdays are numbered: 0 = Sunday, 1 = Monday,…,6 = Saturday.

The web pages listed under Reference Sources, cite various mathematicians, but the method described here is the one suggested by John Conway. There exist other methods, but some are awkward or need adjustments for certain years. All regions with similar calendars require an adjustment for the switch from the Julian calendar to the Gregorian calendar. For the UK and it former colonies, the switch took place in September 1752, such that Wednesday, 2 September was followed by Thursday, 14 September.

Describing John Conway's Doomsday method succinctly, is harder than applying the it. It's less complicated than it appears. With a little practice you will be able to do these calculations in your head.

Go to top of page

Short Summary

a. Find the weekday of the last day of February in the century year (the anchor day), using a simple formula;
b. Hence, find the weekday of the last day of February in year of interest (Doomsday), by adding years and leap years;
c. Find a date in the relevant month that is on Doomsday using a mnemonic;
d. Count on or back to arrive at the weekday of the given date.

Go to top of page

Longer Summary

The aim is to find the weekday of any particular date.

The method starts with finding the anchor day, the last day of February in the first year of the century, taken as 1800, 1900, 2000 etc. Because the official calendar changed in September 1752, we need two ways to find the anchor day: one for the Julian calendar and one for the Gregorian calendar. In both cases, the anchor day fixes the dates and weekdays for the entire century, with a slight adjustment needed to account for the change of calendar.

Each year, the weekday of any particular date shifts, or “slips”, by one or two days because there are 52 weeks and one day in a year, and extra day in leap years. The slippage can be calculated and added to the anchor day to give us the “Doomsday”. Doomsday is the weekday of the last day of February in the year in question.

In each month of the year, certain dates, obviously, fall on the same weekday as the last day of February, that is, on Doomsday. There is a mnemonic for each month that gives one of these dates, from which the required weekday can be worked out.

Knowing the weekday of any date in the month makes it easy to find the weekday of the date in question.

Go to top of page

About Calendars

The Gregorian calendar came into effect in the UK and its colonies on Thursday 14 September 1752 to correct for the inaccuracy of the Julian calendar. The Julian calendar has a leap year every four years, regardless of the 400-year rule we have today, and was, at that time, eleven days out. The day before Thursday 14 September 1752 was Wednesday 2 September 1752 on the Julian calendar. Eleven dates are missing (3rd to 13th September 1752). So, for example, if you are asked for the weekday of 4 September 1752, you have a choice: it either doesn't exist or it's Friday relative to the Julian calendar. You could also say it's Monday relative to the Gregorian calendar, but that seems less appropriate because it would refer to a time before the Gregorian calendar was introduced.

September 1752 Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue
Julian 1 2 3 4 5 6 7 8 9 10 11 12 13 - -
Gregorian - - 14 15 16 17 18 19 20 21 22 23 24 25 26
Go to top of page

Century Anchor Days

In general, the anchor day is, in fact, Doomsday for the century year. Otherwise...

Dates before 14 September 1752 Starting with 1 BC (="0000"), the century anchor days (not Doomsdays) follow a sequence:
0000 anchor = 0 = Sunday
0100 anchor = 6 = Saturday
0200 anchor = 5 = Friday
0300 anchor = 4 = Thursday
0400 anchor = 3 = Wednesday
0500 anchor = 2 = Tuesday
0600 anchor = 1 = Monday
0700 anchor = 0 = Sunday
0100 anchor = 6 = Saturday
...
This sequence leads to a simple formula: anchor = [7 - ((century number) mod 7)].
Simply expressed, subtract the century number from the next higher multiple of 7. For example, for 1671 the anchor day is (21 - 16) = 5. (This is Friday 29 February 1600.)

Dates from 14 September 1752 Starting from any century leap year (2000, 2400, 2800,...), the anchor days follow the sequence:
2000 anchor = 2 = Tuesday
2100 anchor = 0 = Sunday
2200 anchor = 5 = Friday
2300 anchor = 3 = Wednesday
2400 anchor = 2 = Tuesday
2500 anchor = 0 = Sunday
...
The formula for this is [(((century number) mod 4) * 5 + 2) mod 4] though you may choose not to use it. Instead, remember the sequence. That is easier to do by counting the weekdays between days: Tuesday +5 Sunday +5 Friday +5 Wednesday + 6 = Tuesday.
For example, for 1800, we have 18 mod 4 = 2 (since 0 would be Tuesday, 1 would be Sunday and 2 is Friday).

For dates from 1st January 1700 to 2nd September 1752, the Julian calendar applies, and is therefore quite straightforward. The anchor day is Thursday. It might be worth remembering that.
From 14th September 1752 to 31st December 1799 (and thereafter) the Gregorian calendar applies, even though the Gregorian calendar was not in use in the year 1700. The anchor day is Sunday. It might be worth remembering that, too.

Go to top of page

Mnemonics

There are some fortuitous features of each month that make it easy to find the Doomsday in each month.

After February, the Doomsday of even-numbered months is the same as the month number, so the following dates have the same weekday as the last day of February:

  4th of the   4th month,
  6th of the   6th month,
  8th of the   8th month,
10th of the 10th month,
12th of the 12th month.

Odd-numbered months are almost as easy.

7th March (one week after February),
9th May and 5th September (Think 9 to 5 working hours - 9th of the 5th month, 5th of the 9th month),
11th July and 7th November (American supermarket chain? I just think seven and eleven sound similar - 11th of the 7th and 7th of the 11th).
That leaves January (Doomsday is 3rd in non-leap years and 4th in leap years. After much brain-searching, this idea came to me: "On 3, leap 4-ward". It's so silly, you'll probably remember it.

So the following dates also have the same weekday as the last day of February:

  3rd of the   1st month, but 4th in a leap year,
  7th of the   3rd month,
  9th of the   5th month,
11th of the   7th month,
  5th of the   9th month and
  7th of the 11th month.


Go to top of page

The Doomsday Algorithm

Example 1

What day of the week was the Summer Solstice, 2019, 21st June 2019?

Gregorian calendar
The century number is 20, and 20 is a multiple of 4, hence Tuesday (anchor day).
19 div 12 = 1 Add it to Tuesday => Wednesday
19 mod 12 = 7 Add it to Wednesday => Wednesday
7 div 4 = 1 (leap year) Add it to Wednesday => Thursday (Doomsday)
Mnemonic: June is the 6th month, so 6th June is a Thursday
Counting days from Thursday 6th to 21st, the Summer solstice, 21st June 2019 was a Friday.

Go to top of page

Example 2

On what day of the week did the Great Fire of London start, 2nd September 1666?

Julian calendar
The century number is 16, (16 mod 7) = 2 and 7 - 2 = 5 => Friday (anchor day).
66 div 12 = 5 Add it to Friday => Wednesday
66 mod 12 = 6 Add it to Wednesday => Tuesday
6 div 4 = 1 (leap year) Add it to Tuesday => Wednesday (Doomsday)
Mnemonic: September is the 9th month. Think 9-to-5: so 5th September is a Wednesday.
Next count backwards from the 5th to the 2nd, or if preferred, count 5th to 9th, which gives the same weekday.
Counting backwards from Wednesday 5th to 2nd (or 5th to 9th), the Great Fire of London, 2nd September 1666 started on a Sunday.

Go to top of page

Example 3

On what day of the week did the Berlin Wall come down 9th November 1989?

Gregorian calendar
The century number is 19 and 19 mod 4 = 3 Apply sequence: (0)Tuesday, (1)Sunday, (2)Friday, (3)Wednesday => Wednesday (anchor day).
89 div 12 = 7 Add it to Wednesday => Wednesday
89 mod 12 = 5 Add it to Wednesday => Monday
5 div 4 = 1 (leap year) Add it to Monday => Tuesday (Doomsday)
Mnemonic: November is the 11th month. Think 7-11: so 7th November was a Tuesday.
Counting from 7th to 9th, the Berlin Wall came down, 9th November 1989 on a Thursday.

Go to top of page

Reference Sources

These references were correct on 25 November 2024.

Go to top of page

Download a Self-test Program

This program requires Microsoft .NET Framework 4.8.
It may already be on your computer, but if not, the installer will offer to download it from Microsoft and install it.

Doomsday 5.2 (Approximately 1.1MB. Updated 26 November 2024)

To install Doomsday 5.2, extract the files from the zip file and run setup.exe.

You may get a warning from Windows when installing Doomsday 5.2. For me to prevent that warning would cost me money - and I would then have to charge for the program in the hope of recovering my loss. I don't want to do that, particularly as this website is aimed at my extended family and friends. It is, of course, also accessible by the general public.

There are exactly three files in the zip file:
    setup.exe;
    SetupDoomsday5.2.msi and
    ReadMe.txt.

Screen Shots

Doomsday 5.2 has no malware, no viruses and no extraneous files of any kind. If you find extra files, don't install Doomsday 5.2, as it is not an original copy!

Doomsday 5.2 eliminates the bug that existed in version 4, where the year 1 BC was erroneously regarded as a leap year. The Julian calendar was not properly established until the year 4 AD.

The program generates random dates, so you can test your ability to work out the weekdays for yourself. Alternatively, simply use the program to find the weekday of any date.

This is a 32-bit program, but it also works on 64-bit Windows 11.

It creates an ini file in the same directory as the exe file, and a folder for log files in:
%LOCALAPPDATA%
Usually, this is equivalent to:
C:\Users\<Username>\AppData\Local

I do not expect to be paid for any programs on this site, but if you wish to contribute, please contact the Suffolk Autism Social Club (SASC) or the parent organisation at:


Go to top of page