Systems for Calculating Calendar Dates

26 posts / 0 new
Last post
#1 24 March, 2014 - 00:11
Offline
Joined: 2 years 1 week ago

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. :)

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?

24 March, 2014 - 00:28
Offline
Joined: 2 years 1 week ago

I was inspired by Rüdiger Gamm, especially this demonstration where he quickly searches through 100 years:
http://youtu.be/WZG96aInG00

24 March, 2014 - 13:26
Offline
Joined: 5 years 1 month ago

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.
So:
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.

24 March, 2014 - 15:08
Offline
Joined: 5 years 1 month ago

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.

25 March, 2014 - 17:03
Offline
Joined: 2 years 1 week ago

Kinma wrote:

Find out where you spend the most time in your algorithm.
I suspect it is with the YY + YY/4.

Thanks for the tips. That's exactly where I spend most of my time. :-)

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.)

26 March, 2014 - 15:35
Offline
Joined: 5 years 1 month ago

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:
28
56
84

Example.
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.

26 March, 2014 - 17:48
Offline
Joined: 2 years 1 week ago

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:
http://mt.artofmemory.com/3.1415926/t/year-numbers.php

27 March, 2014 - 06:29
Offline
Joined: 5 years 9 months ago

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

27 March, 2014 - 08:17
Offline
Joined: 3 years 2 weeks ago

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. :)

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. :)

27 March, 2014 - 10:16
Offline
Joined: 5 years 9 months ago

http://www.timeanddate.com/date/doomsday-weekday.html

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.

27 March, 2014 - 10:26
Offline
Joined: 2 years 1 week ago

otengam wrote:

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

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:

http://youtu.be/HG9M_hRAOwQ

27 March, 2014 - 10:32
Offline
Joined: 2 years 1 week ago

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:

http://youtu.be/z0YKsLF_q3g

27 March, 2014 - 21:04
Offline
Joined: 5 years 9 months ago

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 :D

27 March, 2014 - 21:15
Offline
Joined: 2 years 1 week ago

otengam wrote:

That video was amazing as well, that's if they were all correct :D

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

2 April, 2014 - 22:40
Offline
Joined: 5 years 5 months ago

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.

Example:
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:
http://www.wolframalpha.com/input/?i=table%5B%28x%2B%28floor%28x%2F4%29%...

Here's the popular "Odd + 11" approach:
http://www.wolframalpha.com/input/?i=table%5B%287-%28%28%28x%2B%28%28%28...

Here's my approach:
http://www.wolframalpha.com/input/?i=table%5B%287-%28%28%28%284*%28floor...

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:

5. 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:

5. 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!

25 May, 2014 - 11:41
Offline
Joined: 5 years 5 months ago

I've actually refined the method above into a tutorial called Quick Calendar Month Creation: http://gmmentalgym.blogspot.com/2014/05/quick-calendar-month-creation.ht...

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: http://gmmentalgym.blogspot.com/2014/05/quick-calendar-month-creation-qu...

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.

7 June, 2014 - 00:42
Offline
Joined: 5 years 8 months ago

I correctly use this table for calendar calculation http://mt.artofmemory.com/3.1415926/t/year-numbers.php. 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?

7 June, 2014 - 09:17
Offline
Joined: 3 years 4 months ago

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.

7 June, 2014 - 09:35
Offline
Joined: 5 years 1 month ago

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.

31 May, 2015 - 21:57
Offline
Joined: 1 year 11 months ago

My current record is 82 correct calendar dates per minute:
http://i.imgur.com/Q9ZSYB2.jpg (consecutively)
(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
http://www.timeanddate.com/date/timeduration.html
to double check your calendar estimations.

Nodas

15 June, 2015 - 03:22
Offline
Joined: 2 years 1 week ago

Quote:

My current record is 82 correct calendar dates per minute:
http://i.imgur.com/Q9ZSYB2.jpg (consecutively)

Amazing. How long did it take you before you were getting down to about one second per date?

19 June, 2015 - 14:10
Offline
Joined: 1 year 11 months ago

How long? Probably 2 years to go from 15 to 60 dates. In MCWC 2010 I did 14 and 16 dates per minute (D1M) in the official competition. That's 1 correct answer every 4 seconds. Then, in that summer I reached around 30 D1M in training (around 1 every 2 seconds). My breakththrough was during summer of 2012, I trained for 3 months broke 30 D1M (28-Jul-12) , 40D1M,(8-Aug-12), and 50D1M (3-Sep-12), and reached 55D1M, before MCWC12. But in there I did 36 D1M, because pen and paper is slower than typing. 1 month before Memoriad '12, I finally broke 60 D1M (24-Oct-12) , which means less than 1 calendar date per second, and went to Turkey with a training record of 64 D1M. But it's hard to reach your best scores in the offical competition, because the keyboard was not mine, and also due to extra pressure of the competition, and the fact that the winner would get 1500$ and free Germany flight, Gold medal, more fame etc.. So, in 5 trials I did 42, 47, 44, 41, and 46, which was 44 on average for all my 5 official trials. 44 is around 1.35" seconds per date, consistently, but I had definitely broken the 1 second barrier in training, so it could be better. 41 seems a lot, but considering I've done 64 in home, 41 is like choking.
During early 2013, I broken 65D1M and 70D1M in Feb. 2013. In October 2013 I finally broke 80D1M. (82D1M). During 2014 my record was the same:
82D1M on computer and 70D1M writing on paper (0,1,2,3,4,5,6 for the respective date). But before that, you need to practice Fast writing of random digits. I have written on paper, in my maximum speed, 156 legible random arabic numeral digits in 1 minute in order to practice pen/paper speed for the world cup. So, then writing 60 or 70 numbers per minute seems okay compared to 156. But in MCWC I underscored a bit, I did 52 officially.. honestly there are many arithmeric tasks to think about , so I was not fully focused on calenders that day, but still, a 5th place is good, considering that there were so many Indian prodigy-children in Dresden. At least Yusnier, Jan and the Mongolian winner(Tuurul) did not participated last time, which made the competition easier for the rest of us

About training. it's gradual process. Let's say you train 30 minutes a day. In 2 years, you just need 365 training hours only. (not 10K hours as they claim for expertise) But important to make this task as a spaced repetition. You just can't arrange it in 12 hours per day for 30 days (360 hours)..It won't work. It's much better to devote 0.5 hours x720 days. During training you can also listen to music if this does not distracts you. After a while, it's like playing the piano.. but instead of sounds, correct answers appear. It's a reward mechanism, if you solve it correct, you feel good and want to go faster. It's like sprint. When you jog, you feel good, but when you run fast you feel much more adrenaline flowing.

But I don't think I'll practice much more, because 90 and 100D1M is pretty much a barrier. If I'll keep up with 80, that's okay. I can do more than 100, but only for short sprint outbursts, like
12 correct in 6.8" (rate 105 D1M)
http://i.imgur.com/AmyC70r.jpg
or 16 correct in 9.5": (that's a rate of 100 D1M.)
http://i.imgur.com/gHI26J8.jpg
But 9.5" seconds is not the whole minute. It's very hard to speed-solve for the whole minute like that. To do 100 dates per minute you need to process 800 digits per 60 seconds,(since 1 date has 8 digits and 2 dashes;
like today: " 15-06-2015" ) and even if I can do it mentally, then my typing speed may be slowing me down. You have to able to read 14 digits per second, but thankfully the first 2 digits of each year "19xx's, 20xx's
after a while are skipped automatically. When I read 1900, I don't think of 19, but of '3'.(the century code). The algorithm you use has to be deeprooted in your brain if you wanna be fast.

Well it's not the typing skill itself that sets a barrier to go beyond 100 per minute, but the transfer from my visual cortex to see the digits, then to frontal cortex to decide the answer and then to the motor cortex in order to move the fingers. Such a thing takes at least 0.3"-0.5", regardless of technique, doomsday, codes, or any memory recall. However there are about 3-4 people in the world (Yusnier and Tuurul (confirmed) and probably Jan or Granth) that have the ability to go faster than 100. But after some point, let it be 82, 90, 100, 110, 130 calendar dates per minute, everyone reaches his physical visual processing limit.

So, the calendar WR by Yusnier is unfortunately stuck at 93 D1M in the last 5 years. (650 milliseconds per date) The Mongolian guy(Tuurul) tried to broke Yusnier record in Turkey, in order to get an extra 500$, but he did not make it, even though he could do 108 on training. Official record attempts are much different than traning, because only 10 attempts-trials are allowing by Ralf and the alternative records comittee. Hopefully, that calendar record it'll be broken next year.

Many people will ask why I am trying to do this task so fast? Just for party tricks and for ditching personal calendar agendas+calendar apps to the bin? Not only that. Well, it's the same answer as sudoku, puzzles or speed-cubing. It does not serve a special survival mechanism, but it keeps the brain active. Also, by reading numbers rapidly, you can improve your speed-reading skills, I personally read much faster than few years go. So, retrospectively, I think learning this skill fluently, offered me some transferrable analytic qualities, like faster processing.

Nodas

15 June, 2015 - 11:36
Offline
Joined: 2 years 1 week ago

Quote:

About training. it's gradual process. Let's say you train 30 minutes a day. In 2 years, you just need 365 training hours only. (not 10K hours as they claim for expertise) But important to make this task as a spaced repetition. You just can't arrange it in 12 hours per day for 30 days (360 hours)..It won't work. It's much better to devote 0.5 hours x720 days. During training you can also listen to music if this does not distracts you. After a while, it's like playing the piano.. but instead of sounds, correct answers appear.

Great info. Thanks for the tips. I guess I would be pretty happy to get it down to four seconds per date. :)

30 June, 2016 - 12:04
Offline
Joined: 2 years 9 months ago

Now the WR is 111 dates in a minute, again, by Yusnier Viera
And Jan Van Koningsveld had 96 dates in a minute before

Yusnier seems to use the method he shows in youtube, and in another method he explains that he likes the method because there are two centuries where you don't add anything (1600's and 2000's)

But performing W=((D+M+C+YY+(YY/4) ÷7) in half second...

Jan van Koningsveld wrote a book explaining, but I'm not sure how is his method (I don't have his book)

I can perform 12-14 dates in a minute (a date in five secs) knowing only 10 yearcodes
But by speedreading and knowing those 100 yearcodes by heart can take you to those answers.
I just can't memorize those 100 numbers because of the pattern it shows
(0123560134...) for that I use shortcuts

According to the ludism page, it is faster to know those 100 numbers

All I know is that I don't know XD

4 July, 2016 - 11:29
Offline
Joined: 5 years 1 month ago

Quote:

I just can't memorize those 100 numbers because of the pattern it shows
(0123560134...) for that I use shortcuts

It might be easier to calculate those numbers.
Here is the formula:

Take the year of the century and do an integer division by 4.
With that I mean divide the year by 4 and discard the remainder.
1 becomes 0, 4 becomes 1, 7 becomes 1 and 8 becomes 2, etc.

Add to that the year itself.
Do the result of the addition modulo 7.

Here are the numbers for the first 10 years;

0 0 0 0
0 1 1 1
0 2 2 2
0 3 3 3
1 4 5 5
1 5 6 6
1 6 7 0
1 7 8 1
2 8 10 3
2 9 11 4
2 10 12 5

Here is how to understand this. The year divided by 4 is the amount of leap years starting from year 0. Add this to the year and do a modulo 7 to get the difference in weekdays compared to year 0.

It takes some time to get quick at this and there are shortcuts to make this a lot faster, but this is the way to produce that pattern.

4 October, 2016 - 17:38
Offline
Joined: 1 year 11 months ago

Quote:

But performing W=((D+M+C+YY+(YY/4) ÷7) in half second

I also can do 20 dates in less than 10 seconds, in short bursts, therefore 2 correct dates per second. (screenshot). But not for the whole minute. If I would, I then would have 120+ D1M. But my unofficial score in training is now 100 D1M, so about 0.6" per date. An Indian kid "Jay Jain" did 103 correct, this weekend in the Open Turkish National Memoriad 2016. The official WR is 111 D1M by Yusnier and it's very hard to read and let alone simultaneously solving dates around that 105 and 110 speed barrier. (around 15 digits read/solved per second). "Full focus" is enough to describe this task.

As you go faster, you have to realise that you have to make shortcuts. That includes memorizing 501+366
4-digit blocks and their respective associations.
But to memorise the whole 8-digit block for each date, you need pure recall of all the days within the 501 years (1600-2100) therefore 182,987 days. (146,097 repeating every 4 hundred years + plus a few more ~37K dates for another extra century ). But OK. Let's be honest in this forum. No human can associate 183K dates with a mod7 number. So, working with 501 + 366 and 4-digit blocks is much easier.

Well, there is still a CALCULATION part left, and that is a simple single digit addition "Modulo 7". Addition is always calculation.

Overall, in these 600 milliseconds I need per date, I would crudely say that the result is
A. 20% reaction time, then
B. 30% memory recall (of the association),
C, 30% calculation (Addition mod7)
D. and finally another 20% for answer/ output (e.g pressing the button or writing the answer digit mod7)

P.S - Actually, Yusnier's unofficial record is 137 D1M , therefore around 438 milliseconds per date, or around 55 milliseconds per digit.

- Nodas
Calendar 3rd Place,
MCWC 2016

Learn memory techniques for free! Just click the "Sign up" button below to create an account and we'll send you an email with some tips on how to get started.

Related content: