How to memorize the 100 year codes for calendar calculation?

(Andrew Penton) #1

I’ve only used the doomsday algorithm for calculating day of the week for calendar dates, and after searching for something more efficient I’ve found the Mental Cal app. I was wondering if there’s a system for memorizing the year codes; there are 100 of them but they all range from 0-6 so I figure there should be an easy way to do this.


How to memorize 00-99 List under Major Method?
Conduct lessons
New Member: Surya, United States
New member: Sai , India,16.

Well, since I’m the one who wrote that app it seems only appropriate that I try and answer your question then. Thanks for downloading, hope the app helps you with practicing. Are you planning on competing in Memoriad or somewhere else where mental calendar calculation is a discipline?

There are two systems actually. The one I prefer to show people is one that uses seven small memory palaces; one per weekday. I say weekday because you can tread weekday and year code pretty much interchangeably. Just like 2 + 2 = 4 you could say Tuesday + Tuesday = Thursday.

So first you’d find seven palaces with seven locations each. The memory palace will represent the weekday, so find something that you can associate with it. For example, Sunday is “fun”-day… whatever that means to you. Monday is then the first day back in the office or school, so you can pick something there. Thirsty Thursday could be in some college bar or something along those lines. Basically, always a location that reminds you of a particular weekday.

After that place images for the numbers in their respective memory palaces. I’d do it as two per location. So if you got 00 = Zeus and 06 = Sushi because you’re using major system codes for your objects, then place Zeus eating Sushi in the first location of the palace that you’ve picked for Sunday.

Unlike memorizing a deck of cards, the information in these palaces will not change. So get a good interaction with the location, so that you are immediately reminded of the palace and which weekday (i.e., year code it represents) as soon as you see the image for the year. (For Monday and Wednesday you’ll need an additional location each.)

Say you have May 7, 2041 you’d look for 41 which is RT and you use “rat” as an image. You find where you placed the rat and that palace remind you of something you do on Tuesdays, so the code is 2. Actually in this example the answer to the date in Tuesday because the rest all comes out 0.

Hope this helps… you can obviously adjust as necessary and use Dominic System or whatever you use; place one image per location instead of two; etc. Main point is: where your image for the year is represents the year code by means of the palace itself.

The other approach is to use 3-digit numbers. So with the above 41, you’d use 412 = RTN… maybe “retina”. The idea here is word completion. You already have 41 from the date, so you think of the word that starts with RT_ and then chose the correct letter to complete the word.

I’m not a big fan of the second approach because it’s very restrictive, due to the fact that you’re using three instead of two letters/digits. Maybe it doesn’t bother you because you already have a 1,000 images system; however, in that case you should use the first approach and combine century and year code so that 1641 is 641, 1741 is 741, etc. Every 400 years the codes repeat, so 20xx is the same as 16xx again. That way you can skip the step of adding the century code.

Hope this makes sense. Let me know if there’s anything I should clarify.


(Andrew Penton) #3

Thanks, this helps a lot.

No, just looking to impress friends with a new skill. Maybe I will compete once I’m more competent though.

1 Like


This sounds very interesting.
What is the main core purpose of this app?
What is the name of the app?

Nice to see the app creator here on the forum :slight_smile:

1 Like


Thanks @Erol,

the app is called Mental Cal (App Store) and teaches how to calculate the weekday for any date in the Gregorian calendar, which is a discipline at mental calculation championships. You can find the rules here:

I initially developed it because I needed a mobile alternative to train on my commute (…super efficient me :wink: ). Non-mobile unfortunately, Memoriad didn’t have a macOS version, so that was out and Excel was a bit annoying to use because the standard date functions don’t cover the full date range needed (1600 - 2100).

After placing 1st in this discipline at the Indonesia Memory Championship in 2016, I decided to add a dynamic tutorial and release the app on the App Store, so that people who are not familiar with the algorithm can learn it too… there seemed to be a need to “demystify” the event.

The funny thing is that it’s actually easier than memorizing a deck of cards and the math required is generally obtained by the age of 10 (in most countries). However, most people insist on you having savant-like abilities even if you assure them that they can learn how to do it themselves in far under an hour.

The current world record is 140 dates per minute which I’d equate to sub-20 speed cards or sub-10 speed cubing. With the above approach (seven memory palaces) you can easily get to 10 - 20 dates per minute after very little practice (3 - 6 sec per date). By comparison, I’d consider sub-5min speed cards and sub-1min speed cubing harder to achieve for beginners.

I also added an iMessage app, so that you can play against friends and see who can get the faster times on random dates (same date per round for both). Still working on an iPad version that lets you play head-to-head in a board game fashion on the same iPad, but haven’t decided on the scoring yet (speed chess like with individual clocks running down, tennis, volleyball, etc.) I feel it gives it a nice social aspect.

So that’s basically the core purpose of the app:

  • teach newcomers how to do it in the first place
  • provide a practice tool that is convenient to use

For myself it was a good reason to dabble in some languages by translating the app into the approx. 30 languages that Apple supports on their devices. Memory palace for the weekdays, month names, etc. in those languages; plus a bit general phrases for the chat tutorial… and afterwards check with a native speaker of course. But you get to play with limited vocabulary in a bunch of languages for a couple of weeks at a time.

Currently, working on Czech and Slovak translations and after that about 4 or 5 languages left. Of course if anybody here reads this and speaks Hebrew or Japanese, please don’t hesitate to get in touch with me if you’d like to help me out with this project. :wink:

Here’s three screenshots of the app itself:

left: answer the given date by tapping the correct weekday
middle: the algorithm steps to find the weekday for a date
right: a description of the algorithm steps to perform

I didn’t include screenshots of the individual books (i.e., steps to get the codes) they mention in the chat but I could post a writeup of how to do the calculation in detail at some later point on this forum if there is an interest.

It’s basically just mnemonics for the 12 months codes and the 4 century codes, so in a way this discipline is more memory than calculation. Even more so when compared to mental square root, 8 x 8 multiplication, etc. Here you’re just adding four codes you get via mnemonics and then divide by seven… can hardly call that calculating by comparison.

1 Like


Wow! I am very impressed with what you did! You’ve put a huge amount of knowledge and time into this and I applaud your efforts for this.

You mentioned about translating the app into different languages, I also speak Turkish almost as fluently as English, so if I maybe a help then you can PM me and see what we can do.

So the whole idea behind this is to find the day of the week right?

" March 23rd, 1627 ," said the committee. " Tuesday ," Bjoern said in just three seconds. "

That’s very impressive!

“I could post a write up of how to do the calculation in detail at some later point on this forum if there is an interest.”

I definitely am interested! I’d love to learn how.

1 Like


That is correct.

Great, appreciate it… will do.

Okay, I’ll put that into a separate post when I get the chance. I’ll include the why as well as the how.

1 Like


Lol, okay… fair enough. Shouldn’t take too long to get to speeds you can use to impress your friends once you got the seven memory palaces down. There is a list of all the years by weekday here:



Well, CBS still seems to think that you have to be a savant to be able to do this…

I don’t know where the expert she interviews gets his ideas, but this doesn’t really seem intuitive to me. I guess when it appears, it’s a slow fade-in or cross-dissolve, as to not scare people by appearing too suddenly… :wink:

Interviewer: “Now when George produces a date… is this a conscious thought?”
Expert: “That’s intuitive. He doesn’t have to think about it… it appears.”

Especially, the Lincoln date at 2:08 (right before the above dialog) seems to take a really long time given its simplicity:

Feb 12 comes out zero. February is the only month where the code actually matches the month number and 2 + 12 is 14. You even see him giving the zero remainders 7, 14 (this one), 21, 28 as an example in the beginning at 0:38.

There are only four repeating century codes and 09 is the first number in the Thursday memory palace, so 18 is 3 and 09 is 4 and together they come out 7; and again it’s a remainder of zero.

So in the end, you just need to add zero to zero to get zero and you got Sunday. The only way this could be any easier would be if it was May 7 (month code 0) and the year 2000 (century code 0 and year code 0).

1 Like

(Andrew Penton) #10

For those of you who are still relatively new to the forum and want a faster way to calculate year codes, this post provides an incredibly efficient method for calculating year codes which I am quite fond of. At least until I have set up my seven memory palaces, this is quite a fast method and I think is worth at least taking a look at.

1 Like


Could you elaborate on that?

I usually teach this method for people not into memory techniques… here the 47 example that’s given in the post you’ve referenced:

1) Find the greatest multiple of 12 that is less than or equal to the year
2) add 5 for each leap year you can still go up staying less or equal
3) add 1 for each year until you get to the year you’re looking for

Couple of reasons I prefer this one:
In 9% of the cases (major leap years) you are done after one step.
In 25% of the cases (minor leap years) you are done after two steps.
All steps build on each other and you can simplify (mod 7) along the way.

Let’s compare the two methods:

Y = 96 (method above)
8 x 12 = 96 → 8 ÷ 7 = 1 remainder 1 → Monday

Y = 96 (method in link)
96 becomes 96 + 0
96 + 0 is transformed into 48 - 0
48 - 0 = 48
49 is the smallest multiple of 7 which is equal to or greater than 48, so we work out 49 - 48 = 1, so 1 is the year key for years ending in 96.

The second method also gets a bit weird for single digit years:

Y = 7
7 becomes 4 + 3
4 + 3 is transformed into 2 - 3
2 - 3 = -1
0 is the smallest multiple of 7 which is equal to or greater than -1, so we work out 0 - (-1) = 1, so 1 is the key for years ending in 01.

It’s not that it doesn’t work, but it requires you to subtract negative numbers. Alternatively, this is the steps using the above method instead:


(Andrew Penton) #12

I used to use that one, I think the problem I had with it was keeping track of the total while staying on track with the year number. For example, after adding four to get to the next minor leap year, I’d have to be adding five to my running total for the year code. The subtraction method is always the same amount of steps and is quicker, at least for my thought process, than the other.

There is also something to be said about having to reduce mod 7. Using the major/minor leap year method, you will have to reduce for quite a few cases (those just below a major leap year like 22). With the subtraction method, you always get your answer reduced mod 7.

I do agree, for the first few (under 12) I prefer to just count from the century. And for multiples of 12, it is faster to just divide by 12. That being said, it doesn’t take much longer to just divide the number by two and count up to a multiple of 7. Taking the example of 24, halving and counting up 2 to 14 is not much slower than dividing by 12 and taking 2 as your answer. It is one more step, but this is in comparison to the many times when the major/minor method can have four steps (major, minor, exact, reduce mod 7).

Even if you reduce mod 7 along the way, it’s less efficient than using a method in which this reduction is simply not necessary.

Rather than thinking of it as a new subtraction, just “counting up” to the number is much faster. Regardless, I’m sure a subtraction of 49 - 48 hardly requires a “working out.” :slight_smile:



Lol… was just copy-/pasting the terminology they used in the post you linked to. :wink:

I understand where you’re coming from, but I’d call that standardized rather than efficient. Maybe efficient for you to internalize and use, but from an algorithmic analysis point of view… best case you land on a major leap year and that’ll always be faster than the other method.

I’m interested in hearing an update as far as efficiency and speed once you’ve set up your memory places.

I think another issue for me is that people sometimes ask “why” and the major / minor / common method is easier to explain (and justify) than why you’d half something, subtract the rest from it, and then get the difference to a multiple of 7.

It’s overall an easier way of explaining things to newcomers, I think. Of course, if you know for yourself that the other method works (which is does) then you don’t have that hurdle to take.

1 Like