Algoritno para obtener el día de la semana
1. Determinar la fecha buscar
2. era = 0 si es Antes de Cristo ó
era = 1 si es Después de Cristo
3. Como el ajuste delaño se da cada 4 años en el mes de febrero tomaremos como inicio de año el primero de marzo entonces aplicamos el siguiente valor a la variable añoAnt.
añoAnt = 1 para los meses de enero y febrero óanoAnt = 0 para el resto de los meses
4. añoActual = año de la fecha a buscar + era - añoAnt
5. Con esto año actual obtenemos el Doomsday “día del juicio” que es el día de la semana con la quetermina el año anterior al primero de marzo a través de la siguiente fórmula:
diaJuicio = ( añoActual + truncar(añoActual / 4) - truncar(añoActual / 100) + truncar(añoActual / 400)) mod 7
donde mod es laoperación residual de la división resultante
6. Obtener el valor del mes
mes = 10 si es enero,
mes = 11 si es febrero,
mes = 0 si es marzo,
mes = 1 si es abril
mes = 2 si es mayo
mes = 3 sies junio
mes = 4 si es julio
mes = 5 si es agosto
mes = 6 si es septiembre
mes = 7 si es octubre
mes = 8 si es noviembre
mes = 9 si es diciembre
7. Con la siguiente formula se obtiene el totalde días transcurridos durante el año que empieza en marzo.
diasTranscurridos = redondear(mes * (337/11)) – truncar ((mes mod 5) / 4) + dia
donde 337/11 es el promedio en días durante once meses desdeel primero de marzo hasta el 31 de enero que son 337 días esto da 30.636363… para cada mes
truncar ((mes mod 5) / 4) es el ajuste de menos un día para los meses de Julio (4) y Diciembre (9)
dia esel día de la fecha a buscar
diasTranscurridos = redondear(mes * 30.636363) – (1 si mes es igual a 4 ó 9, si no 0) + dia
8. Encontremos el día de la semana que buscamos con la siguiente formuladiaSemana = ((diaJuicio + diaTranscurridos) mod 7) + 1
9. El residuo resultante del díaSemana lo relacionas con la siguiente información
1 lunes; 2 Martes; 3 Miércoles, 4 Jueves, 5 Viernes, 6 Sábado;...
Regístrate para leer el documento completo.