Copyright © University of Cambridge. All rights reserved.

## 'Weekly Challenge 41: Happy birthDay' printed from http://nrich.maths.org/

This solution is not 'complete', but does indicate why the formula works. It will make more sense if you test it out using a spreadsheet.

This tasks seems daunting at first but then you might realise that essentially the function is a 'counter' and the year starts at 1st March and ends on 28/9th of February.

Years are always of the same structure with the exception of the last day of Feb:

From 1st March to 1st April is +31 days.

From 1st April to 1st May is +30 days.

From 1st May to 1st June is +31 days.

etc.

For weekday calculations we are only interested in mod 7 changes. Since 31 is 3 mod 7 and 30 is 2 mod 7 we have the following differences between the first of the months, with the +0/1 corresponding to February.

(1Mar) +3, +2, +3, +2, +3, +3, +2, +3, +2, +3, +3,+0/1 (1Mar)

Accumulating the changes from the 1st March (mod 7) gives

(1Mar) 0

(1Apr) 3

(1May) 5

(1Jun) 1

(1Jul) 3

(1Aug) 6

(1Sep) 2

(1Oct) 4

(1Nov) 0

(1Dec) 2

(1Jan) 5

(1Feb) 1

(1Mar) 1 or 2 in a leap year

Interestingly, the $\mbox{int}\left[\frac{(m+1)\times 26}{10}\right]$ part matches these offsets with the labellings of months given (try it out to see).

So, in the absence of leap years the expression would work.

The part $y+\mbox{int}\left[\frac{y}{4}\right]+\mbox{int}\left[\frac{C}{4}\right]-2C$ has the correct mod 7 behaviour to count the leap years (try it).