## 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