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
editarCalcular el día de la semana para el 25 de enero del 2007
Si 0 es domingo, entonces 5 corresponde a viernes