Para calcular el dia de la semana que corresponde a una fecha
cualquiera, se procede de la forma siguiente:
1º: se calcula el Dia Juliano (DJ) que corresponde a esa fecha:
Veamos un ejemplo: calcular el DJ corresponde al 25 de Enero de 1945 a las 0 horas
llamamos D al dia, asi D=25, M al Mes, asi M=1, Y al año, asi Y=1945
Si el nacimiento fuese a otra hora pondriamos D con los decimales de dia que le correspondan.
Por ejemplo si fuese a los 3 horas, 3 / 24 = 0,125, asi que pondriamos D = 25,125
Primer paso: vemos si M es mayor o menor de 2:
si M es menor de 3, es decir si M es 1 o 2 (como es en nuestro ejemplo) quitamos 1 a Y y sumamos 12 a M: en nuestro ejemplo tendremos Y=1945 - 1 = 1944, M=1+12=13
Segundo paso: calculamos A y B
A es igual a Y dividido por 100 y quitamos los decimales. En nuestro ejemplo 1944 / 100 = 19,44 asi que A=19
B es igual a 2 - A + int(A/4)
En nuestro ejemplo sera: B = 2 - 19 +int(19 / 4) = 2 - 19 + 4 = -13
DJ = int(365,25 x (Y+4716)) + int(30,6001 x (M+1) + D + B - 1524,5
En nuestro caso tendremos:
DJ = int(365,25 x (1944 + 4716)) + int(30,6001 x (13 + 1) + 25 -13 - 1524,5 =
int(365,25 x 6660) + int(30,6001 x 14) +12 =
2.432.565 + 428 + 12 - 1524,5 = 2.433.005 -1524,5 = 2431480.5
2º Ahora, con el DJ calculamos el dia de la semana
sumamos al DJ la cantidad de 1,5, y el resultado se divide por 7. El resto de la division es el dia de la semana:
Sumamos a DJ + 1,5 = 2431480.5 + 1.5 = 2431482
Dividimos el resultado por 7 : 2431482 / 7 = 347354.571428571
Multiplicamos por 7 la parte entera del resultado anterior: 7 x 347354 = 2431478
Restamos los dos resultados anteriores: 2431482 - 2431478 = 4
Como sale 4 el dia es Jueves
cualquiera, se procede de la forma siguiente:
1º: se calcula el Dia Juliano (DJ) que corresponde a esa fecha:
Veamos un ejemplo: calcular el DJ corresponde al 25 de Enero de 1945 a las 0 horas
llamamos D al dia, asi D=25, M al Mes, asi M=1, Y al año, asi Y=1945
Si el nacimiento fuese a otra hora pondriamos D con los decimales de dia que le correspondan.
Por ejemplo si fuese a los 3 horas, 3 / 24 = 0,125, asi que pondriamos D = 25,125
Primer paso: vemos si M es mayor o menor de 2:
si M es menor de 3, es decir si M es 1 o 2 (como es en nuestro ejemplo) quitamos 1 a Y y sumamos 12 a M: en nuestro ejemplo tendremos Y=1945 - 1 = 1944, M=1+12=13
Segundo paso: calculamos A y B
A es igual a Y dividido por 100 y quitamos los decimales. En nuestro ejemplo 1944 / 100 = 19,44 asi que A=19
B es igual a 2 - A + int(A/4)
En nuestro ejemplo sera: B = 2 - 19 +int(19 / 4) = 2 - 19 + 4 = -13
int quiere decir que de la operacion que se indica entre parentesis se desprecian los decimales.
Si la fecha fuera antigua (anterior a la reforma gregoriana) y esta dada segun el Calendario Juliano, B = 0
Tercer paso: Con estos datos calculamos el DJDJ = int(365,25 x (Y+4716)) + int(30,6001 x (M+1) + D + B - 1524,5
En nuestro caso tendremos:
DJ = int(365,25 x (1944 + 4716)) + int(30,6001 x (13 + 1) + 25 -13 - 1524,5 =
int(365,25 x 6660) + int(30,6001 x 14) +12 =
2.432.565 + 428 + 12 - 1524,5 = 2.433.005 -1524,5 = 2431480.5
2º Ahora, con el DJ calculamos el dia de la semana
sumamos al DJ la cantidad de 1,5, y el resultado se divide por 7. El resto de la division es el dia de la semana:
1 Lunes
2 Martes
3 Miercoles
4 Jueves
5 Viernes
6 Sabado
0 Domingo
Sumamos a DJ + 1,5 = 2431480.5 + 1.5 = 2431482
Dividimos el resultado por 7 : 2431482 / 7 = 347354.571428571
Multiplicamos por 7 la parte entera del resultado anterior: 7 x 347354 = 2431478
Restamos los dos resultados anteriores: 2431482 - 2431478 = 4
Como sale 4 el dia es Jueves
No hay comentarios:
Publicar un comentario