Saltar al contenido

Cálculos que hacen la Pascua


pegones1

Recommended Posts

Hay cálculos que nos fastidian porque son muy difíciles o porque no nos salen y decimos que nos hacen la Pascua en sentido figurado.

Los cálculos o Computus que propongo son para obtener el Domingo de Pascua (Easter Sunday) que han hecho "la Pascua" a los matemáticos, astrónomos, programadores y calculadoras humanas desde el siglo IV.

Hasta logroastur intentó resolver los días de Semana Santa en el post #53 del tema Número de semana.

Para que estos cálculos no nos hagan "la Pascua" y no nos fastidien dando fechas equivocadas, he recopilado las fórmulas y UDFs más precisas y curiosas que calculan el Domingo de Pascua en mi blog:

pedrowave.blogspot.com/2010/09/computos-que-hacen-la-pascua.html

Se pueden descargar desde aquí: EasterSundayCalculation.zip

La fórmula más curiosa e incomprensible para mí, que vale para los años 1900 a 2203, es:

=MONEDA(("4/"&A1)/7+RESTO(19*RESTO(A1;19)-7;30)*14%*7-6[/CODE]

[b][i]¿La comprendes? ¿Conoces alguna fórmula o función mejor?[/i][/b]

Si quieres saber más sobre este tema mira mi blog:

Cómputos que hacen la "Pascua" | Pedro Wave Blog Spot

Enlace a comentario
Compartir con otras webs

Adjunto fichero con varias funciones y fórmulas que calculan los domingos de Semana Santa según el Calendario Gregoriano desde 1900 hasta 2204, año para el que fallan todas las fórmulas.

Sería interesante encontrar una fórmula mejor. :P

En la columna B está el mejor algoritmo reconocido con el que se comparan las fechas.

Los domingos de Pascua erróneos se marcan de naranja y los errores de cálculo en rojo.

DomingoPascua.zip

Enlace a comentario
Compartir con otras webs

Este... muchas gracias espero llegar el 2050 por lo menos para comprobar... jejeje

Slds Jp

Hola jackpvs, compruébalo ahora mismo con Microsoft ExcelWebApp, la nueva herramienta de Excel para insertar hojas de cálculo en blogs y páginas web, y para no tener que esperar llegar al 2050 la acabo de introducir en mi blog: Cómputos que hacen la "Pascua" | Pedro Wave Blog Spot

2moc938.jpg

Como ves, en las columnas C y E hay cálculos que hacen "la Pascua" porque las fórmulas originales que aparecen en las páginas web están escritas con el formato de fechas en inglés y funcionarían cambiando la configuración regional del sistema operativo.

Por ejemplo, para la fórmula original en inglés:

=DOLLAR(("4/"&DAY(MINUTE(A1/38)/2+55)&"/"&A1)/7,)*7-6[/CODE]

traducida a Excel en español (Columna C):

[CODE]=MONEDA(("4/"&DIA(MINUTO(A1/38)/2+55)&"/"&A1)/7;)*7-6[/CODE]

el formato de fechas es "M/D/AAAA" (mes/día/año) y falla =¡VALOR!, por lo que aconsejo usar esta versión que no depende del formato de las fechas (Columna D):

[CODE]=MONEDA(FECHA(A1;4;DIA(MINUTO(A1/38)/2+55))/7;)*7-6[/CODE]

En la columna H he metido como he podido la megafórmula:

[PHP]=FECHA(A1;SI(SI(RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)=29;-1;SI(Y(RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)=28;RESTO(A1;19)>10);-1;0))+RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)+21+RESTO((20-(RESTO((SI(RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)=29;-1;SI(Y(RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)=28;RESTO(A1;19)>10);-1;0))+RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)+21-19);7))-(SI(SI(RESTO((40-(ENTERO(A1/100)-20));4)=3;1;0)+RESTO((40-(ENTERO(A1/100)-20));4)>1;1;0)+SI(RESTO((40-(ENTERO(A1/100)-20));4)=3;1;0)+RESTO((40-(ENTERO(A1/100)-20));4))-(RESTO((RESTO(A1;100) + ENTERO(RESTO(A1;100) / 4));7)));7)+1>31;4;3);SI(SI(RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)=29;-1;SI(Y(RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)=28;RESTO(A1;19)>10);-1;0))+RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)+21+RESTO((20-(RESTO((SI(RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)=29;-1;SI(Y(RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)=28;RESTO(A1;19)>10);-1;0))+RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)+21-19);7))-(SI(SI(RESTO((40-(ENTERO(A1/100)-20));4)=3;1;0)+RESTO((40-(ENTERO(A1/100)-20));4)>1;1;0)+SI(RESTO((40-(ENTERO(A1/100)-20));4)=3;1;0)+RESTO((40-(ENTERO(A1/100)-20));4))-(RESTO((RESTO(A1;100) + ENTERO(RESTO(A1;100) / 4));7)));7)+1>31;-31;0)+SI(RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)=29;-1;SI(Y(RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)=28;RESTO(A1;19)>10);-1;0))+RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)+21+RESTO((20-(RESTO((SI(RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)=29;-1;SI(Y(RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)=28;RESTO(A1;19)>10);-1;0))+RESTO(SI((ENTERO(A1/100)-20)<13;0;ELEGIR((ENTERO(A1/100)-20)-12;-2;0;0;-2;-2;0;-2;-2))+SI((ENTERO(A1/100)-20)<1;0;ELEGIR((ENTERO(A1/100)-20);-1;0;0;-1;-1;0;-1;-1;-1;-1;-1;-1;0;-1;-1;0;0;-1;0;0))+ENTERO(((ENTERO(A1/100)-20)+5)/2)+202-11*RESTO(A1;19);30)+21-19);7))-(SI(SI(RESTO((40-(ENTERO(A1/100)-20));4)=3;1;0)+RESTO((40-(ENTERO(A1/100)-20));4)>1;1;0)+SI(RESTO((40-(ENTERO(A1/100)-20));4)=3;1;0)+RESTO((40-(ENTERO(A1/100)-20));4))-(RESTO((RESTO(A1;100) + ENTERO(RESTO(A1;100) / 4));7)));7)+1)[/PHP]

Con ella no hay cálculos que nos hagan "la Pascua" pues está probada hasta el año 4099, aunque no sé si será tragada vs tratada con la limitación del tamaño de los mensajes de este foro.

P.D.: Por cierto, los ministros de las iglesias implicadas están pensando fijar las fechas de Semana Santa para que a los gobiernos y a los colegios de estudiantes no les hagan "la Pascua" por los dichosos cambios anuales.

Enlace a comentario
Compartir con otras webs

Crear una cuenta o conéctate para comentar

Necesitas ser usuario para poder dejar un comentario

Crear una cuenta

Registrarse para una nueva cuenta en nuestra comunidad. ¡Es fácil!

Registrar una nueva cuenta

Conectarse

¿Ya tienes una cuenta? Conéctate aquí.

Conéctate ahora
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.