Return to my mathematics pages
Go to my home page
© Copyright 1997, Jim Loy
Some autistic (and other) people can tell you the day of the week for any date. They can't explain how they do it. And psychologists normally don't understand it, either. But, it's really a fairly simple skill. The amazing thing is that they do it so fast, and without effort. Let me show you how it's done. The exact details may vary from one person to another.
First, you need to have at least one date that you know, like today or Pearl Harbor Day (Sunday, Dec. 7, 1941).
Then, someone asks for a date like May 12, 1961. Well, there are 20 years from Dec. 7, 1941 to Dec. 7, 1961. That's 20(years) x 365(days) + 5(leap days), or 7305 days. We are looking for May 12, however. So, we have to subtract off some days. May 7 to Dec. 7 is 7 months. Three of those months have 30 days, four have 31 days. That's 214 days. So, 7305-214=7091 days. And May 12 is 5 days more than that, 7096 days. How many weeks is that? Dividing by 7, we get 1013 weeks + 5 days. So, May 12, 1961 was a Friday (Sunday + 5 days).
Was May 12, 1961 a Friday? I'll look it up in my World Almanac. Yup, Friday.
The process is simple. It just takes time, like counting to a thousand. Above I waited until the last step to divide by 7. But, at most steps we can divide numbers greater than 6 by 7 and just keep track of the remainders, which are the days of the week.
Well, there are short cuts, which these autistic people use. These short cuts are natural. And it is not amazing that people come up with them. For example, if January 1 is a Sunday, they know that July 1 is a Saturday on non-leap years (It would be a Sunday on a leap year). And they know that if January 1 is a Sunday, that the next January 1 will be a Monday (add 1 each year), or Tuesday with a leap day in between (add 2). With these tricks, you don't have to divide a large number by 7. This speeds up the process quite a bit.
Let's get down to some details of the shortcuts that I mentioned above. I used Pearl Harbor day as a starting date. To facilitate doing the math in your head, it is much handier to memorize a few January 1st's, to start with:
|Jan. 1, 1950||Sunday|
|Jan. 1, 1960||Friday|
|Jan. 1, 1970||Thursday|
|Jan. 1, 1980||Tuesday|
|Jan. 1, 1990||Monday|
|Jan. 1, 1995||Sunday|
|Jan. 1, 1996||Monday|
|Jan. 1, 1997||Wednesday|
|Jan. 1, 1998||Thursday|
|Jan. 1, 1999||Friday|
|Jan. 1, 2000||Saturday|
|Jan. 1, 2001||Monday|
|Jan. 1, 2002||Tuesday|
|Jan. 1, 2003||Wednesday|
|Jan. 1, 2004||Thursday|
|Jan. 1, 2005||Saturday|
You should be able to figure out the above pattern, for the last seven years of the table, which depends on when the leap years occur.
Now, when January 1 is on Sunday, we can memorize the following situation for the 12 months:
The days for leap year can be deduced from the normal year. So they need not be memorized.
Now, do we need to memorize seven of these charts, one for each kind of January 1 (Sunday, Monday...)? Well, Monday is one day more than Sunday, and Saturday is one day less. These two can be easily deduced without memorization. The other days are not bad either. It should take two or three seconds to figure it out. But, I think that some of the people, who do these things in their head, may have memorized all seven tables (maybe fourteen, because of leap year).
Now, let's look at a typical month:
I did not label the columns as Sunday, Monday... The idea here is just that 1, 8, 15, 22, and 29 are the same day of the week. This sequence (or the easier 0, 7, 14, 21, 28) can be easily memorized. Then, given the day of the week for the first day of the month, using the above charts, we can easily deduce any of the other days of that month. I know what day of the week the first is, so I know what day of the week the 22nd (same day as the first) is, so I can deduce what day of the week the 25th (three days later) is.
We may need an example. Let's use my May 12, 1961.
Jan. 1, 1960 is a Friday (top table). 1960 is a leap year. So, Jan. 1, 1961 is a Sunday. That makes May 1 a Monday (second table). That makes May 8 a Monday (1 and 8 are the same day). We have to add four to get to May 12. That makes May 12 a Friday.
That agrees with my previous results. And you should be able to see how that can be done in your head.
Here is an easier method. We will use arithmetic, modulo 7 (just divide by 7 and use the remainder). See Modular Arithmetic. That means that we use the numbers 0 through 6 only, and 6 is followed by 0. So, 5+4 (modulo 7) becomes 2. The days of the week will be 0=Sunday, 1=Monday, etc. up to 6=Saturday. We will use this formula:
W=C+Y+L+M+D (mod 7)
|1400s, 1800s, 2200s||2||1800 is not a leap year|
|1500s, 1900s, 2300s||0||1900 is not a leap year|
|1600s, 2000s, 2400s||5||2000 is a leap year|
|1700s, 2100s, 2500s||4||2100 is not a leap year|
|1. Jan.||0||5. May||1||9. Sep.||5|
|2. Feb.||3||6. June||4||10. Oct.||0|
|3. Mar.||3||7. July||6||11. Nov.||3|
|4. Apr.||6||8. Aug.||2||12. Dec.||5|
Let's try 7/20/1969. We get 0+69+17+6+20 (mod 7) which is 0 (divide by 7 and get a 0 remainder), or Sunday. Looking that date up in the World Almanac, I see that it is right. (Earlier I made two errors in this calculation, and it still came out as Sunday).
This method is similar to that above. But expressing it in a formula makes it easier. And you can get good at arithmetic modulo 7.
I have changed this addendum twice, because it contained errors, and was not very clear. My confusion was due to the century table. For each century year, the table gives the day of the week of the zeroth day, not the first day.
Apparently Uspensky and Heaslet gave the following formula, in Elementary Number Theory, 1939, for the Gregorian calendar:
W=D+floor(2.6m-0.2)+y+floor(y/4)+floor(c/4)-2c (mod 7)
Apparently, no tables are needed. Floor() means to drop the fraction; floor(6.8) is 6. m is the month starting with March as 1 and ending with February as 12. January and February of any year are considered to be in the previous year. I have not tried out this formula.
Also see Rudy Limeback - Doomsday Algorithm.
Return to my mathematics pages
Go to my home page