How often in years do calendars repeat with the same day-date combinations?

I think that's the best way to phrase this question. Thanks,! Personally, I find the answers on quora not accurate enough + they don't explain why. This article is a more sophisticated answer.

Let's start with the basics. There are 7 days in a week. And 365 days in a year, right? Yes, but there is a leap year with an extra day every 4 years. Except for years evenly divisible by 100 but not by 400, but we'll get to that later.

Now, let's say that this year started with a Saturday. Any number of days that is divisible by 7 after that day will also be Saturday. 365 is 7×52+1, so in exactly one common year, it will be Sunday. This means that every year starts later by one day of the week than the year before, except for leap years which start later by 2 days.


Now, here is where it gets complicated.

According to what we just demonstrated in the last paragraph, after every leap year cycle we advance by 5 days in the week (1+1+1+2). This means that the calendar repeats itself after 6 years (1+1+1+2+1+1), right? Let's get back to our concrete example again and see if that's true.


The first cycle took 6 years but the second took 5. See what happened there? The first cycle starts at the second year of a "leap cycle" (1+1+2+1+1+1) and the second cycle starts at a leap year (2+1+1+1+2). The calendar repeats itself after a different number of years depending on which year of the leap cycle we start counting from.

We have another cycle right here! 1st -> 3rd -> 2nd -> leap -> 1st -> 3rd -> 2nd -> leap -> etc ... So, back to our example again : starting from 2022, the calendar repeats itself after 6 years (2028), then 5 (2033), then 6 again (2039), then 11 (2050), then 6 (2056), etc ... The sum of this cycle is 28 years. This means that at any given year, 28 years later, the calendar repeats itself.

And there you have it. The answer is 28 years...

... Or is it?

There is an exception for leap years : years that are divisible by 100 and not by 400 are not leap years. For example 1700, 1800 and 1900 were not leap, but 2000 was. So with this exception, in every 400 years, there are 97 leap years instead of 100. So 97×2+303×1=497 days, which happens to be a multiple of 7! This exception breaks the 28 years rule on years like 1800, 1900, 2100, etc ... but makes a new rule : the calendar repeats itself every 400 years!

By the way, this year marks my 28th birthday. Which happens to be the same day of the week as the day I was born : a Thursday.