# Zeller's congruence # year is full (four-digit) year # month is zero-origin # day number is one-origin def zeller(year, month, daynumber): newmonth = month - 2 newyear = year if newmonth < 0: newyear = newyear - 1 newmonth = newmonth + 12 return ((26 * (newmonth+1) - 2) / 10 + daynumber + (newyear%100) + (newyear%100)/4 + newyear/400 - 2 * (newyear/100) + 7777) % 7