Algoritmia/Algoritmo para calcular el día de la semana
Para determinar el día de la semana de una fecha del calendario gregoriano, debemos seguir el siguiente procedimiento.
- Calcular la cantidad de días transcurridos hasta la fecha.
- Calcular el módulo con respecto a 7.
- 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