Mentally finding out the day of the week for any date is a skill you can easily learn.
You dont need
to be an autistic genius all it takes is basic memorization effort and some trivial math.
When I first learned this technique many years ago, I did it just for fun. With time, I learned to
enjoy the convenience of not needing a calendar anymore. Its far more useful than I first thought,
and with just a little practice, youll be able to find out the days of the week much faster than when
reaching for a calendar.
The Method
To find out the days of the week for any date, use the formula:
[day of week] = (yearcode + monthcode + day) mod 7
If youre not math-inclined, this may look quite scary at first, but dont worry: using the formula is
straightforward. Lets walk through each one of of its parts.
Month and Year Codes
The month codes are one of the formulas most troublesome parts, since they dont follow a clear
logic. Well have to memorize them, but dont worry with that just yet, as we will focus on an easy
way to do this later. For now, here they are for reference:
January: 1
February: 4
March: 4
April: 0
May: 2
June: 5
July: 0
August: 3
September: 6
October: 1
November: 4
December: 6
We also need the year code, which are also apparently arbitrary. You shouldnt also worry about
memorizing them at this point. For now, here are the ones youll most likely use:
2008: 2
2009: 3
2010: 4
2011: 5
2012: 0
2013: 1
Days of the Week
The result is always a number from 0 to 6, and its interpretation couldnt be any easier:
1: Sunday; 1st day of week
2: Monday; 2nd day of week, and so on.
3: Tuesday
4: Wednesday
5: Thursday
6: Friday
0: Saturday
The Calculation
Let me show you how the formula works with an example: December 25, 2008.
Step 1: Get the codes for month and year. According to the code tables, December is 6 and 2008 is
2.
Step 2: Apply the numbers in the formula:
1. [day of week] = (yearcode + monthcode + day) mod 7
2. [day of week] = (2 + 6 + 25) mod 7
3. [day of week] = 33 mod 7; see below if you don`t know what mod is
4. [day of week] = 5
5 means Thursday. Thats the day of the week for December 25, 2008.
Tips for Faster Calculation
In case youre unfamiliar with the modulo (mod) operator, all it does is give you the remainder of a
division. Take, for example, 17 mod 7. If you divide 17 by 7, you get 2 and a remainder of 3. So, 17
mod 7 = 3.
Now, if you dont like the idea of performing divisions mentally, theres hope: you dont really need
to divide by 7 to get the numbers modulo. All you need is to cast out sevens of the number. That
is: take the closest multiple of seven below your number and just take the difference between them.
For example, in 17 mod 7, the closest multiple of 7 below 17 is 14. Casting 14 out of 17, theres a
leftover of 3. Therefore, 17 mod 7 = 3.
An additional tip to speed up the calculation: Instead of summing up all the three numbers and
calculating the modulo thereafter, as the formula suggests, do it slightly differently: dont wait until
you have a big number to calculate its modulo. You can cast out sevens as you go. Lets do the
same calculation we did above (December 25, 2008), but casting out sevens as we go.
1. [day of week] = (2 + 6 + 25); lets cast out sevens for 25 before we go.
2. [day of week] = (2 + 6 + 4);
3. [day of week] = (8 + 4); lets cast out sevens for 8 before we go
4. [day of week] = (1 + 4);
5. [day of week] = 5
Although there are extra steps, you will always work with small numbers, speeding up the process.
Adjustment for Leap Years
The only caveat in the formula (and it had to have one, right?) is that there will be an adjustment
when dealing with leap years: you need to subtract one from the result, for the months of January
and February. The other months are calculated just as any normal year.
Memorizing the Month Codes
The math is pretty easy, but unless you memorize the codes, you wont be able to perform the
entire technique in your head. The good news is that the month codes never change, so you just
need to memorize them once and reuse them over and over again. For an easy and fun way of
memorizing lists, I strongly suggest the pegging memory system. Well use it here, so if youre
unfamiliar with it, please take a look first.
For the peg system to work, our challenge is to come up with images for the months. Here are my
suggestions, based on either similarities in word pronunciation or on cultural traditions.
January: Jacket
February: Freeze
March: March
April: Bunny
May: Flowers
June: Dune
July: Jungle
August: Barbecue
September: Scepter
October: Doberman
November: Turkey
December: Santa Claus
If these images dont make much sense to you, feel free to substitute by your own. Remember that
the list doesnt need to follow any pattern or logic; the only requirement is that each association
must come easily and quickly to you.
If you did like the images I suggested, heres a graphical list to help you visualize and memorize
them as pegs:
(click for larger image)
All right, now that we have the pegs, the next step is to create fun and remarkable scenes
combining the month images with our previously learned number images. Just to illustrate, let me
give you a personal example on how to do that:
August. Looking at our month code table, we see the code for August is 3. Lets associate
barbecue (for August) with heart (for number 3): Barbecue and heart? The first thing that
comes to mind is a childhood memory of the movie Indiana Jones and the Temple of Doom. I always
wondered what the bad guy did with those living throbbing hearts he extracted from people in that
dark ritual. No more: what about a great barbecue outside, with pulsating hearts on the grill and
everybody getting drunk with kegs of Kali Mas blood! Childhood memories work wonders for your
memory.
This technique only works if you use your own imagination, so now its up to you. Always remember
to make it personal and fun.
Bonus: Extend the Technique for Any Year
For practical purposes, I memorize only the code for the current year. When a new year arrives and
you need its code, you can find it pretty easily: find out the day for current years December 31th
and just sum one and youll have the day of the week for next years January 1st. Now, the only
variable left in the formula is the year code. Dont forget about the adjustment for leap years when
using this trick.
If, unlike myself, you want to go really wild and mentally find out the days for any year, youll need
to grow some extra math and memorization muscles. Heres the formula for the year code:
yearcode = (centurycode + [last two digits of year] + ([last two digits of year] div 4)) mod 7
Div is the operator for integer division. Just like mod gets the remainder of a division, div
gets its integer quotient. For example, 17 div 7 = 2 (with a remainder of 3).
The century code follows a recurrent pattern, and can be used for any date in the Gregorian
calendar:
1600s: 6
1700s: 4
1800s: 2
1900s: 0
2000s: 6; repeating the pattern
2100s: 4; 6-4-2-0 pattern goes on