Aleph's

Aleph's
View from my village...

Thursday, April 3, 2008

Calculating Calendar Dates

What day of the week will May 12, 2034 be? What day of the week was May 12, 1298? Here's a neat algorithm that will tell you:

(Note: all divisions, except where noted otherwise, are integer divisions, in which remainders are discarded.)

First figure out the values for a, y, and m -- variables to be plugged into a formula.

a = (14 - month)/12 (month = # of month, 1 for Jan, 2 for Feb, etc)

y = year - a (year = the 4 digit year)

m = month + 12a - 2

Next, plug the values of y and m into the following formula to calculate the day:

d = (day + y + y/4 - y/100 + y/400 + 31m/12) mod 7

(Note: mod 7 means "modulo division." That is, take the remainder instead of the quotient as your answer. For example, 20 mod 3 = 2, because the remainder is 2.)

The answer you get for d will correspond to a day of the week as such:

0 = Sunday
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday

Here's an example.
What day of the week will April 5, 2020 fall on?

First figure out a, y, and m:

a = (14 - 4)/12 = 0 (remember, it's integer division so remainders are discarded. 4 represents the month of April since it's the fourth month of the year.)

y = 2020 - 0 = 2020

m = 4 + 12(0) - 2 = 2

Now plug y and m into the d formula to calculate the day:

d = (5 + 2020 + 2020/4 - 2020/100 + 2020/400 + 31(2)/12) mod 7
d = (5 + 2020 + 505 - 20 + 5 + 5) mod 7
d = 2520 mod 7
d = 0 (2520/7 = 360 with a remainder of 0)

Recall from above that 0 = Sunday. So April 5, 2020 will be a Sunday.

Cool, huh? Remember, you can do this for dates in the past as well.




http://www.curiousmath.com/index.php?name=News&file=article&sid=6