Systems for Calculating Calendar Dates

What systems do people use for calculating calendar dates? I can calculate dates, but not quickly enough to entertain people with it. I want to provide a natural answer and not look like I’m calculating. :slight_smile:

I’m memorizing shortcuts now.

Are there any other systems that are faster than the one that I’m using? Or are most of the algorithms basically the same?

1 Like

I was inspired by Rüdiger Gamm, especially this demonstration where he quickly searches through 100 years:

1 Like

There is a whole list of algorithms in the wiki:
I suggest you try them all.

To speed things up, learn how to do ‘mod 7’ quickly.
Here are some tips:
In your example of Einsteins birthday, instead of using ‘97’ for the year, do the modulo 7 first.
For ‘24’, do the modulo first too.
Also use negative modulo’s.

So for 97, mentally subtract 70 = 27 then subtract 28 (four times seven) = -1.
And for 24, mentally subtract 21 = 3.
Then do the addition: 3-1 =2.
Bring the big numbers down to small numbers first. This makes them a lot easier and quicker to deal with.

Memorize all factors of 4 below 100.
1 4
2 8
3 12

24 96

This way instead of having to divide 97 by 4, you mentally look it up. so you go ‘97’ -> ‘96’ -> ‘24’.
Then instead of thinking ‘24’, try to do the modulo at the same time.
So instead of thinking ‘24’, you immediately subtract ‘21’ to get to ‘3’.

Find out where you spend the most time in your algorithm.
I suspect it is with the YY + YY/4.
If this is the case, do this calculation of all 2 digit numbers you come across using the tips I gave you.
Also try to ‘see’ the modulo 7. ‘11’ immediately becomes ‘4’.
17 becomes 3, etc.

1 Like

Some background info.

It helps to understand where the modulo 7 and the division by 4 comes from.

A normal years has 365 days. 365 mod 7 = 1.
This means that when a certain date falls on a Monday, the next year it will fall on a Tuesday.
This effect is taken care of by taking the last 2 digits of the year and the modulo 7.

The above is true, except of course when there is a leap year. Then we have to add 2 days.
This is taken care of by the division by 4 and addition of the year number.

The month code. This is also easy if you understand it.
A week has 7 days, 4 weeks 28 days. These are complete cycles.
January has 31 days, or 4 complete cycles plus 3 days.
So if January first falls on a Monday, February first will fall on a Thursday.
Therefore, February’s code = 3.
and March’ code by necessity also (February has 28 days).
Since we start with January, it needs to be zero.

Hope this helps to understand the algorithm.

1 Like

Thanks for the tips. That’s exactly where I spend most of my time. :slight_smile:

What I was doing is calculating all of the year numbers just for practice, and then was planning on memorizing all of them to eliminate the calculation for that part completely. I’ll try out your tips as I continue to practice. I wrote out a little JavaScript snippet on a napkin while I was walking around. I will post it below and see if it works. It generates all of the year numbers in a list for memorization.

(Edit: didn’t work when posted in the forum. I’ll try later on another page.)

1 Like

While I was thinking about you memorizing a list of 100 year codes, I couldn’t help thinking that there must be an even better way.
It sounds to me that in the beginning you have to juggle too many numbers to do this quickly.

I might have found a better way. Indulge me.

You can do the modulo 7 at any time, just not before you do the division by 4.
But what you can do is do a modulo 28 first, then divide the result by 4. Since 28 = 7 X 4, this does not disturb the modulo 7 that needs to be done later.
This might sound difficult, but since there are only 3 factors of 28 under 99, a simple subtraction takes care of this.
The factors of course are:

year = 1933
YY = 33
Subtract 28: 5 (this is 33 mod 28)
divide by 4: 1

33 mod 7 = 5

1 + 5 = 6

I created a spreadsheet to help train these calculations.
Let me know what you think.


Thanks – I’ll give it a try.

I got the list of year dates working on another page, but I haven’t double-checked it for accuracy yet:

1 Like

For the people who have achieved learning one of these systems, how quickly can you do these calculations to have the final answer?

1 Like

If speed is what you’re after you should memorize a list of 100 and put those items/persons in 7 different rooms bound to 0-6. That is by far the heaviest calculations in the algorithm. And also where you’re most likely to go wrong.

I didn’t really bother with that, and can do it with fairly big certainty in something like 30 seconds. I haven’t really timed, but yeah, it’s too slow to impress people cause people have the attention spam of gold fish, but that’s fine. :slight_smile:

If I thought I would have any use of being able to do this fast, or I had nothing else to do, I’d definately memorize the 100 list. I’m imagining it should take less than 10 seconds even with very little practise, and that’s pretty cool! Hell, I know the technique, and I’d still be impressed if someone did that at a party… At a second thought, maybe I should do it. :slight_smile:

1 Like

According to some sources, Conway can now usually give a correct answer in under two seconds. But then again, he’s a math professor.

This definitely seems like a very interesting skill to have. Even being able to reach this time in under 5 seconds seems amazing.

1 Like

It takes me between 10 and 60 seconds, but I’m sure it will be much faster once I get some shortcuts ingrained in my head. The year calculation is the slowest part. Once you have the year number, you’re basically just adding a set of numbers and then doing mod 7:

March 10 18-86
(3 + 10 + 2 + 2) % 7 = 3 (Wednesday)

The best calendar calculators can do more than one per second:

1 Like

In the system I learned, you just have to memorize this:

12 month numbers: 033614625035
Century numbers for 1700s-2300s: 4206420
Plus the rules for leap years, which are only applied on dates in Jan and Feb.

Yusnier Viera’s system is on YouTube, so I might try that and compare it, though it looks similar:


I am keen to learn the system but not a fan of learning the wrong one or spending months on one system only to find that there was a better one almost staring me in the face. I guess if John Conway came up with it, it must be pretty accurate…

That video was amazing as well, that’s if they were all correct :smiley:

1 Like

I read somewhere that it was 90 correct. Maybe the world record is 93 in one minute?

1 Like

I wrote an earlier post called New Approach To Calculating Year Keys that described what I call the “partitioning” method:

Here's how it goes:
  1. Let Y=the last 2 digits of the year.
  2. Break Y up into an addition problem consisting of two addends, with one being the largest multiple of 4 equal to or lower than Y, and the other being a remainder of 1, 2, or 3 (if needed).
  3. In this newly-formed addition problem, divide ONLY the multiple of 4 by 2, and change the plus sign to a minus sign.
  4. Solve the subtraction problem you created in step 3.
  5. Find the smallest multiple of 7 which is equal to or greater than the answer from step 4, and subtract step 4’s answer from that number. This is the year key.


  1. Y=47
  2. 47 becomes 44 + 3
  3. 44 + 3 is transformed into 22 - 3.
  4. 22 - 3 = 19.
  5. 21 is the smallest multiple of 7 which is equal to or greater than 19, so we work out 21 - 19 = 2, so 2 is the year key for years ending in 47.

Just so you can see that they all deliver the same results, I’ve run each of these approaches on Wolfram Alpha for all the years from 0 to 99 below.

Here’s the classic ((x+(floor(x/4))) mod 7) approach:

Here’s the popular “Odd + 11” approach:[(7-(((x%2B((((x%2F4)+mod+1)4%2911%29%29%2F2%29+mod+7%29%29+mod+7%2C+%7Bx%2C+0%2C+99%7D%5D

Here’s my approach:

I’ve also toy with a few other ways of speeding up the appearance:

  1. Have some sort of calendar that allows you to adjust the display to show an entire month. The idea being here is that all you need to calculate is the month and year/century. The calculations for individual dates are eliminated. For this approach, I’ve used printed business cards on calendars, this acrylic calendar, and this cylindrical calendar (sturdy enough and small enough to be carried in the pocket).

  2. If you go the memorization route, realize that you only need to memorize 28 year keys, as the cycle of doomsdays repeats every 28 years within a century. Memorize key information for years 00-27, and then just do mod 28 for any higher year. Since mod 28 is really just subtracting 28, 56, or 84, it’s not that difficult.

  3. Have them name the year first. I use the 2000s as a base century, and I know when I get my year keys, I can instantly give the day of the week for Halloween in that year (it’s the doomsday for that year). I also know that, given a year in the 1900s, I can use my memorized/calculated 2000s doomsday as the day on which Christmas will fall, and then move one day forward to give the day of the week on which Halloween will fall. To an audience, you’re already rattling off information about the year they gave, while in reality, you’re verbally making the adjustment you need to find the doomsday in the 1900s.

As a matter of fact, breaking up the presentation of the information, and being able to give information about one part, such as a given year, is a good way to make the performance as a whole seem faster.

Another good quick approach is Bob Goddard’s First Sunday Doomsday Algorithm (FSDA). It can handle Gregorian dates, Julian dates, and even BC dates back to 45 BC (with 1 minor adjustment)!

You can use the partitioning method I described above to get the year key for the FSDA with 1 minor adjustment. Step 5 should become:

  1. Calculate step 4’s answer mod 7. That is, find the largest multiple of 7 which is equal to or less than the answer from step 4, and subtract that number from step 4’s answer. This is the year key.

The step #5 example would be:

  1. 14 is the largest multiple of 7 which is equal to or less than 19, so we work out 19 - 14 = 5, so 5 is the year key for years ending in 47.

As you can see, for any given year key X in the standard doomsday method, the FSDA uses a year key of 7-X.

Those are some of my handy speed tips for the calendar feat. I love the whole discussion this has made possible!


I’ve actually refined the method above into a tutorial called Quick Calendar Month Creation:

In this approach, you’re simply given a year, and then a month, and then you quickly create a month calendar. This has the advantage if not requiring any calculations for the individual date (such as the 1st, 15th, or 28th), but you can still give the day of the week for any date just by looking at the calendar you created!

I’ve also included a quiz for each step, including the full calendar creation:

Instead of calculating the first Sunday of the month (as those in which 0=Sunday, 1=Monday, etc.), or working through the Doomsday approach, where years are associated with days of the week and months are associated with a date, this method is based on an approach from 1927 in which the years are associated with dates and months are associated with days of the week (sort of the direct opposite of the Doomsday algorithm).

I think you’ll like the calculation for the year, as it’s simple and keeps making the number smaller.

1 Like

I correctly use this table for calendar calculation By memorizing this, it takes me around 10-15 second to figure out the day of the week. Anyhow, i don’t know how other can make 72 calculation per minute. Anyone know what’s the system they are using?

1 Like

He most likely doesn’t even do much of the calculation, he’s probably at the point where he knows what every month+day combination equals almost instantaneously, and same with the year, then just adds those two.

1 Like

There are lots of shortcuts.
Read my last post about the modulo 28 again.
This will speed up the year code and makes sure you do not need to memorize the 100 year list.
This is just one. Make it a habit of doing a modulo 7 with each number you come across. This will help in doing that part quickly.
At some point the year code comes automatic, the month code also and so does the date modulo 7.
Apart from the leap year correction check.

Use my sheet to generate random dates to practice.
Using the sheet and a bit of creativity will generate more shortcuts.

My current record is 82 correct calendar dates per minute:

(did that several times). But I am stuck now, so I won’t practice that category a lot, this year, due to lack of competitions. I can’t really get much closer to Yusnier’s 93, current WR. It will take lot of practice if I wanna reach 90 next year for Memoriad’16 and MCWC2016.

In MCWC2014, I did 52 per minute, and lost the medal for just 1 date. My Bulgarian friend Georgi, did 53 finishing 3rd. I’ve done 70 on paper once, but I guess I wasn’t my day on Dresden, maybe next time. Marc from Spain, did 64 to win. In computer it’s much easier to press buttons(1 to 7) than to write the respective numbers. That’s why in Memoriad the Gold medal required 85 dates per minute, but in the World Cup, 64 dates per minute.

I don’t use month codes, but a variation of Conway’s algorithm, with lots of shortcuts, in order to reach 80D1M. Like in mnemonics, people have different methods for doing the same thing. It all comes down to what works for you.

If you see this as a mere party trick it’s still good, but I need more motivation than learning this just for parties. My major motivation for mastering this skill, was practical: I wanted to be efficient in scheduling things ahead without any need for calendar agendas, like smartphones or other gadgets or calendar books. The Gregorian calendar is already complicated, so such tricks are actually very helpful to simplify life, in case that knowing the ‘day of the week’ matter to you somehow, like knowing any future weekends or days off.

In any case, you can always visit
to double check your calendar estimations.


1 Like