Para calcular el día de la semana correspondiente a una fecha determinada, disponemos de la llamada congruencia de Zeller, denominada así en memoria del autor, el reverendo Christian Zeller(1824-1899). Existen algunas variantes de esta ecuación, veamos la correspondiente al algoritmo presentado por Springer y Friedman:
donde:
ds = día de la semana. Domingo=0, ... , sábado=6
m = mes del año, ajustado para empezar con marzo=1. Enero=11 y febrero=12, son considerados parte del año previo.
a = año de la fecha. Si el mes es enero o febrero, debe restarse un año a la fecha. Si el año dentro del siglo es 0, entonces el año se convierte en 99, y se resta 1 al siglo.
s = siglo previo a la fecha. Por ejemplo, para el año 2003, el siglo previo es 20.
d = día del mes de la fecha de interés.
Con respecto a la notación utilizada, se debe aclarar que:
⌊x⌋ = parte entera de x (también llamada función piso)
k mod n. Si k ≥ 0, es el residuo entero de dividir k entre n, en caso contrario: sea r = |k| mod n, si r = 0 entrega 0, en caso contrario entrega n - r.
Con este progama puedes saber el nombre del
día de la semana de cualquier fecha que desees.
Este programa está basado en la fórmula citada más arriba.