Mental Calendar Trick

How to determine day of the week for any given date

by Bill Price

Finding the day of the week for any given date is a simple little math trick that can be done by adding together a series of offsets to obtain a number that represents the day of the week.

We can arbitrarily designate Sunday to be zero, and any other day of the week to be an integer offset from Sunday, positive or negative. A -2, for instance, would be Friday, i.e., two days before Sunday. A +3 would be Wednesday, i.e., three days after Sunday. The numbers can of course work in both directions. A Friday can be designated as a -2 or a +5, and a Wednesday as +3 or a -4.

Note that any number greater than 6 or less than -6 can be adjusted by subtracting or adding 7, i.e., shifting back seven values toward zero. Therefore +7 is the same as 0 (Sunday), and -8 is the same as -1 (Saturday).

The numbers for the days of the week are thus as follows:

-6 Monday
-5 Tuesday
-4 Wednesday
-3 Thursday
-2 Friday
-1 Saturday
0 Sunday
+1 Monday
+2 Tuesday
+3 Wednesday
+4 Thursday
+5 Friday
+6 Saturday


There are three kinds of offsets that we need to add together to obtain this number for any given date. These offsets can be grouped together into the following three tables:

  1. a day offset table
  2. a month offset table
  3. a year offset table

By memorizing these three tables and doing a little mental math (and being aware of a few exceptions), one can determine the day of the week for any given date within a matter of seconds.

Day Table

The first table is a table of day offsets:


These numbers represent the dates within a given month that have the same day of the week as the first of the month. Therefore, if the month begins on a Wednesday, the 8th, 15th, 22nd, and 29th are also all Wednesdays.

For the purposes of our mental date calculation, each one of these days represents an offset of zero. The 10th of the month, for instance, represents an offset of +2 (or -5), and the 19th represents an offset of -3 (or +4).

Month Table

The second table is a table of month offsets:

+3 February, March, November
+2 August
+1 May
0 January, October
-1 April, July
-2 September, December
-3 June

What this table means is that if January starts on a Sunday (0), then February, March, and November start on a Wednesday (+3), August starts on a Tuesday (+2), April starts on a Saturday (-1), and so on. If January starts on a Friday (+5 or -2), then we shift back two days (or go ahead five days): February, March, and November start on a Monday (+1), August starts on a Sunday (0), April on a Thursday (-3) and so on.

Year Table

The third table is a table of year offsets. This one is the most difficult, not only because there are more things to memorize, but also because of the complications arising from leap years. The year table consists of fourteen years in the 20th century. Each of these years represents a “Sunday” year, i.e., a year in which January 1st begins on a Sunday. For each of these years, our beginning offset is zero.


For any year not in this table, the year offset can be determined by adding or subtracting from a nearby “Sunday” year. 1935, for instance, is two greater than 1933, and is thus a “Tuesday” year (+2).

Leap Years

In determining the year offset, we must take leap years into consideration. These are years that are evenly divisible by 4. There are two very important things to remember with leap years.

First of all, when counting forward in the years table we must add 1 to the offset for every leap year encountered. Conversely, when counting backward in years we must subtract 1 from the offset when counting down from a leap year.

For instance, from the table we see that 1939 is a “Sunday” year and therefore has an offset of zero. We would normally expect the following year 1940 to be an offset of +1, but since it’s a leap year (evenly divisible by 4) we must add one more for an offset of +2. Therefore, the year 1940 is a “Tuesday” year (+2) and not a “Monday” year (+1).

Similarly, 1972 is a “Sunday” year with an offset of zero, and counting down from that point we would expect 1971 to have an offset of -1. However, since 1972 (the year we are counting down from) is a leap year, we must subtract one more from the offset to obtain -2. Therefore, the year 1971 is a “Friday” year (-2) and not a “Saturday” year (-1).

The second thing to note is that in leap years the year offset applies only to the months March through December. For all days in January and February (January 1st through February 29th) we must apply an additional offset of -1.

For instance, we determined above that the year 1940 is a “Tuesday” year. Normally that would mean that January 1st, 1940 would be a Tuesday. But for the months of January and February in all leap years we must apply an additional offset of -1. Therefore January 1st, 1940 is not a Tuesday, but a Monday.

Introducing the years table above we stated that each of the years in the table represents a year in which January 1st begins on a Sunday. The years marked with an asterisk in the years table, however, represent leap years, and for all “Sunday” leap years January 1st actually begins on a Saturday. In all leap years, March through December (the majority of the year) match true “Sunday” years, but January and February match “Saturday” years (i.e., one day behind a “Sunday” year). Therefore, 1916, 1944, and 1972 all begin on a Saturday, but for the purposes of our table they are considered to be “Sunday” years.

The “Monday” years 1928, 1956, 1984.

Examining the years table we notice that there are 11-year gaps between 1922 and 1933, 1950 and 1961, and 1978 and 1989. This occurs because the leap years 1928, 1956, and 1984 – the years that would normally split these 11-year gaps – are “Monday” years. Since they are leap years they skip over Sunday and land on Monday.

Therefore, if one remembers that 1928, 1956, and 1984 are “Monday” years, it helps in calculating the year offset for a year that falls within any of these three 11-year gaps.

(Note however that since 1928, 1956, and 1984 are all leap years, they all actually begin on a Sunday! But for the purposes of our table offsets they are considered to be “Monday” years.)

Using the Three Offsets

With these three tables we can now work out the day of the week for an arbitrary date in the 20th century.

Let’s try an easy one: October 1st, 1939.

1939 we recognize from our year table as a Sunday year, a zero offset.
October we recognize from the month table as another zero offset.
The 1st in the day table is also a zero offset.
0 + 0 + 0 = 0. The result is zero. According to our convention, zero represents Sunday. Therefore October 1st, 1939 is a Sunday.

How about April 1st, 1939?

Again, the year and day offsets are zero. April, however, is a -1.
0 - 1 + 0 = -1. Therefore this date is a Saturday.

How about September 24th, 1939?

September = -2
24 = +2
1939 = 0

0 – 2 + 2 = 0. Therefore the date is a Sunday (0).

It gets a little more complicated with leap years.

February 10, 1944.

Adding together the offsets for February (+3) and the 10th (+2) we obtain +5. The year is a “Sunday” year (a zero offset), and so our preliminary answer would be Friday (+5). However, 1944 is a leap year and we need to remember to subtract 1 from our answer if the date is in January or February. Therefore February 10, 1944 is not Friday, but Thursday.

Let’s try May 17, 1925.

For May (+1) and the 17th (+2) we obtain +3. To determine the year offset, we count forward from the nearest “Sunday” year in our table that is less than 1925. This would be 1922. At first glance 1925 would appear to be an offset of +3, since it is three years ahead of 1922. But the intervening year 1924 is a leap year (divisible by 4). So we need to add an extra day to our regular offset. So the answer we obtain is 1 + 2 + 3 + 1 = 7. A 7 is the same as a 0, hence a Sunday.

Let’s try August 13, 1968.

For August (+2) and the 13th (-2) we obtain zero. For 1968 we look at the year table and see that it’s one ahead of the “Sunday” year 1967. But since 1968 is evenly divisible by 4, i.e., a leap year, we must add +1. 1968 is therefore a “Tuesday” year with an offset of +2. Adding +2 and zero we obtain +2, hence a Tuesday.

Let’s try February 9, 1968.

For February (+3) and the 9th (+1) we obtain +4. As described in the previous example, we determine from the year table that 1968 has an offset of +2. But since 1968 is a leap year and the date in question is within the range of January 1st through February 29th, we must subtract 1 from our answer. Therefore, the date is 4 + 2 – 1 = 5, which is a Friday.

Let’s try June 5, 1971.

For June (-3) and the 5th (+4) we obtain +1. For 1971 we could count upwards from 1961, but since 1972 is in our years table it would be simpler to count down from 1972. 1972 is a “Sunday” year, an offset of 0, but since 1972 is also a leap year we must apply an additional offset of -1 when counting down to 1971. Therefore the date is -3 + 4 – 1 – 1 = -1, hence a Saturday.

Let’s try December 18, 1957.

For December (-2) and the 18th (+3) we obtain +1. For 1957 we could count up from 1950 to obtain the offset, but this involves counting seven years with two intervening leap years. If we remember that 1956 is one of our three special “Monday” years that lie in the three 11-year gaps described earlier, we can just count up from 1956. Since 1956 is +1, then 1957 is 1 + 1 = +2. Therefore the date is -2 + 3 + 2 = +3, hence a Wednesday.

Let’s try November 5, 1985.

For November (+3) and the 5th (-3) we obtain +3 – 3 = 0. For 1985 we could count down from 1989, but since we are aware of the three special “Monday” years we can count upwards from 1984 (+1) for an offset of +2. Therefore the date is +3 – 3 + 2 = 2, hence a Tuesday.

Mastering the above process will allow us to correctly determine the day of the week for the vast majority of days in the 20th century.

The Year 1900

The 20th century, however, has a special problem with the year 1900. Normally, any year evenly divisible by 4 is a leap year, but the first year of any century which is not evenly divisible by 400 is by exception not a leap year. 1900 is one of these exceptions, and so 1900 was not a leap year. Therefore we must remember that the year 1900 is a true “Monday” year for all months, including January and February.

Other Centuries

For determining day of the week for the 19th century, follow the steps for the corresponding 20th century date and then add 2.

For determining day of the week for the 18th century, follow the steps for the corresponding 20th century date and then add 4.

For determining day of the week for the 21st century, follow the steps for the corresponding 20th century date and then subtract 1.

Note that the year 2000 is a leap year. It is a “Sunday” year, but January 1, 2000 was a Saturday. The years 1700 and 1800 were not leap years. That is why the differences between 1900, 1800, and 1700 are offsets of 2, whereas the difference between 1900 and 2000 is an offset of 1.


Certain holidays can be determined by using the years table. Christmas, for instance, is always an offset of +1 from the year. (December 25 has an offset of -2 plus +3, which equates to +1). For all of the years in our years table, for instance, Christmas falls on a Monday.

The Fourth of July is an offset +2 from the year.

Calculating Thanksgiving, the fourth Thursday in November, is a little trickier. This involves memorizing another table:

0 year = 23
+1 year = 22
+2 year = 28
+3 year = 27
+4 year = 26
+5 year = 25
+6 year = 24

This means that on “Sunday” years Thanksgiving falls on the 23rd, and so on.

Note that the year offset and the date add up to 30 for all but the first two. If, however, we were to adjust the 0 and 1 year offsets by adding 7 (which actually results in the same day of the week) we could say that they add up to 30 for all seven. But it is probably simpler to remember that Thanksgiving falls on the 23rd for “Sunday” years, on the 22nd for “Monday” years, and for all other years on 30 minus the positive year offset.

Miscellaneous Shortcuts

Again, remember that 1928, 1956, and 1984 are “Monday” years that begin on a Sunday. Remembering this helps to fill in the 11-year gaps between 1922-1933, 1950-1961, and 1978-1989 in our years table.

Also note that 1911, 1922, 1933, and 1944 are all “Sunday” years, whereas 1955, 1966, 1977, and 1988 are all “Saturday” years. (1999 is a “Friday” year).

After becoming proficient with the year table, one can memorize an additional table of “Thursday” years. This enables us to determine the year offset more quickly.

The “Thursday” years all have an offset of +4 (which of course is the same as -3). The asterisked years are leap years, i.e., “Thursday” years that actually begin on a Wednesday:


Dimensions, ch.1 | Dimensions, ch.2 | Dimensions, ch.3 | Dimensions, ch.4 | Dimensions, ch.5 | Hypercube formula | Decimals of Primes | Visual Definition of Primes | Calculator Trick | Decimal Equivalents of Fractions | Kaleidodigit | Cobol Sudoku Solver | Math | Home Page

Copyright 2006 by Bill Price