Traducir el blog

Cómputos que hacen la "Pascua"

Posted on septiembre 17, 2010 by Excel Pedro Wave

Al intentar resolver un problema, a veces hay cómputos que nos hacen la "Pascua" y que nos resultan muy difíciles de resolver, si no imposibles, o se prolonga su resolución interminablemente. Estos cómputos pueden ser fórmulas, funciones, algoritmos matemáticos, informáticos o de la vida diaria, como ¡llegar a fin de mes!

En los programas de ordenador, los informáticos colamos siempre huevos de Pascua, que son ligeras bromas, como las que permite la calculadora de Google "once in a blue moon", pero a veces se convierten en pesadas cuando son resultado de nuestros frecuentes errores de cálculo...

Los que me conocéis ya sabéis que me gustan los cálculos complicados, y que la luna me influye por mi signo zodiacal, y que además he publicado en este blog varios calendarios con los días señalados de fiesta religiosas y paganas. El titular lo dice muy claro, con Cómputos que hacen la "Pascua" se trata de cómo obtener el cómputo eclesiástico, o sea, el conjunto de cálculos necesarios para determinar el día de la Pascua de Resurrección y demás fiestas movibles, que se deducen del Domingo de Pascua.

Durante el Renacimiento las tablas de cálculo para la Pascua se basaban en el número áureo. Al cálculo de la fecha de Pascua se le llama en latín Computus y ha servido para que religiosos, astrónomos, matemáticos, calculadoras humanas y programadores se devanen los sesos hasta nuestros días.

La cuestión es cómo hacer que las fechas de Pascua, basadas en el cómputo gregoriano, estén disponibles en todas las Iglesias Occidentales del mundo para que pueda celebrarse su conmemoración simultánea siguiendo la Reforma del Calendario Gregoriano y que no coincidan nunca con la Pascua judía, que se celebra independientemente del día de la semana.

Todo ello me ha llevado a la recopilación de algunos de los algoritmos de Cálculo del Domingo de Pascua - ver aquí su implementación en varios lenguajes de programación (Easter Sunday en inglés) ya que se basa en la primera luna llena o plenilunio de la primavera boreal.  En la revista Ciencia Hoy se ve un algoritmo en C++ y otros en el libro Mapping time: the calendar and its history de E. G. Richards.

Como Excel es la hoja de cálculo por excelencia, se han desarrollado muchos algoritmos basados en VBA y en fórmulas para obtener la Fecha o el Domingo de Pascua y hasta un concurso para crear la fórmula más corta posible que lo obtenga entre los años 1900 y 2078, patrocinado por Hans Herber, un maestro Excel en Alemania.

En los siguientes ficheros Excel adjunto mi propia recopilación de algoritmos de cálculo del Domingo de Pascua para las Iglesias Occidentales:

EasterSundayCalculation.xls 
(Fórmulas y UDF para Excel 2003 a 2010)
EasterSundayCalculation.xlsx 
(Fórmulas para Excel 2007 y 2010)
EasterSundayCalculation.zip 
(Los dos ficheros anteriores comprimidos)

En esta comparativa se introduce siempre el año como 4 dígitos (AAAA) en la celda A1.

En la fila 1 se obtienen los Domingos de Pascua para cada una de las fórmulas y llamadas a las funciones definidas por el usuario (User Defined Functions - UDF).

En las filas 10 a 2029 aparece el cálculo del Domingo de Pascua para los años 1900 al 4099, respectivamente.

Las limitaciones conocidas de Excel con las fechas impiden calcularlos para años gregorianos anteriores, desde 1583 al 1899.

NOTA: Excel para Windows utiliza el sistema de fechas 1900 y Excel para Macintosh utiliza el sistema de fechas 1904.

Puedes ver y descargar los cómputos que hacen la Pascua desde la nube de Microsoft OneDrive. Desde aquí sin salir del blog:




Funciones VBA:

El algoritmo más preciso reconocido procede del United States Naval Observatory - USNO y lo creó J.-M. Oudin.

Obtiene el cómputo de todos los domingos de Semana Santa para el Calendario Gregoriano, desde el año 1583 hasta el año 4099, aunque para Excel el rango empieza en 1900:
Se llama en una celda cualquiera con:
=EasterUSNO(A1)

Otro algoritmo un poco más largo es el creado por Greg Mallen según los estudios y tablas de Ronald W. Mallen:
Llamarlo con:
=EasterDate(1;1;A1)

Uno bastante más corto citado por Cheap Pearson en su web es:

Por último incluyo una función que falla más que la fórmula original en la que se basa y que fue propuesta por Norbert Hetterich para el concurso mencionado arriba.

Fórmulas Excel:

Las fórmulas que soportan estos algoritmos se encuentra en la Red en inglés y alemán, en su versión original, y las traduciré al español para poder disfrutarlas.

Thomas Jansen planteó esta curiosísima fórmula que funciona entre los años 1900 y 2203:

Otra versión de Tomas Jansen:

Aconsejo usar esta versión transformada en formato de fechas internacional:

Norbert Hetterich propuso la siguiente pero falla en el año 2079:

Aconsejo usar esta versión transformada en formato de fechas internacional:

Por último, la siguiente megafórmula la he obtenido de la función de Greg Mallen a partir del algoritmo de Ronald W. Mallen:

Esta última megafórmula está en la versión de Excel 2007 y 2010 pues no se soportan fórmulas tan largas en Excel 2003.

¡Ahora si que necesito ayuda para entender estos cálculos!
Por favor, escríbeme un comentario si puedes ayudarme.

P.D.: ¿Qué tiene que ver esto con los Interfaces Gráficos de Usuario? Que la información y los resultados aportados deben ser precisos y repetibles, como los cálculos de los días de Semana Santa...

English translation of this post here.

No Response to "Cómputos que hacen la "Pascua""

Leave A Reply

Indícame las erratas que encuentres y qué es lo que te gustaría ver en los próximos artículos.

Mi lista de blogs