Algoritmia/Algoritmo para calcular el día de la semana

De Wikilibros, la colección de libros de texto de contenido libre.

Para determinar el día de la semana de una fecha del calendario gregoriano, debemos seguir el siguiente procedimiento.

  1. Calcular la cantidad de días transcurridos hasta la fecha.
  2. Calcular el módulo con respecto a 7.
  3. El valor obtenido será el día de la semana de la fecha.

Esto lo podemos expresar de la siguiente manera:


Sin embargo, en realidad no debemos calcular el total de días, sino únicamente los módulos con respecto a 7. Entonces, nuestra expresión se reduce así:

Donde
= día de la semana
= Año
= Días transcurridos hasta antes del primer día del mes
= Día

División entera
Módulo

Además:

    Tengamos en cuenta que debemos conocer el módulo correspondiente a cada "inicio" de mes. Así, Si estamos buscando una fecha de julio, el módulo sería:



Crearemos entonces una tabla que contenga los módulos acumulados por mes.

E F M A M J J A S O N D
0 3 3 6 1 4 6 2 5 0 3 5
0 3 4 0 2 5 0 3 6 1 4 6

La primera fila es para años regulares y la segunda para años bisiestos

Por último nuestro algoritmo quedaría así:

donde
= Es el módulo correspondiente al mes

Tener en cuenta que para que este método funcione se deben redondear las divisiones al valor entero inferior.

Ejemplo[editar]

Calcular el día de la semana para el 25 de enero del 2007








Si 0 es domingo, entonces 5 corresponde a viernes