Calendar Math

What day of the week will May 12, 2034 be?
What day of the week was May 12, 1298?

The following algorithm 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 = \frac{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 + \frac{y}{4}-\frac{y}{100}+\frac{y}{400}+ \frac{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

Example: What day of the week will April 5, 2020 fall on?

First figure out $$a$$, $$y$$, and $$m$$:

$$a = \frac{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 + \frac{2020}{4} - \frac{2020}{100} + \frac{2020}{400} + \frac{31(2)}{12}) \: mod \: 7$ $d = (5 + 2020 + 505 - 20 + 5 + 5) \: mod \: 7$ $d = 2520 \: mod \: 7$ $d = 0$

Note: 2520/7 = 360 with a remainder of 0.

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