Traducir el blog

Calendario Perpetuo desde antes de 1900

Posted on diciembre 21, 2020 by Excel Pedro Wave

🔝To translate this blog post to your language, select it in the top left Google box.


Esta entrada del blog es la tercera de la trilogía sobre el cálculo de fechas anteriores al año 1900 con funciones en VBA. La trilogía explica:

A) Cómo calcular fechas antes de 1900 en Excel y VBA

B) Cómo calcular la edad y el día de la semana antes de 1900

C) Calendario Perpetuo desde antes de 1900

En esta entrada explicaré por fin cómo hacer un calendario perpetuo desde antes del año 1900, basado en el calendario de este artículo:

Calendario Perpetuo desde 1900 con eventos


Aquel calendario lo diseñé para fechas válidas de Excel, por lo que sólo admite días a partir del 1 de marzo de 1900.

Este nuevo calendario admite todos los días del Calendario Gregoriano, en el supuesto que la primera fecha gregoriana hubiera sido adoptada el día 1 de enero del año 100, que es la primera fecha posible en lenguaje VBA.

Son varios días de intenso trabajo para generar este calendario, que me he propuesto como un reto interesante, ya que no he visto publicado ninguno similar en Excel en ningún otro sitio.

Espero que este Calendario Gregoriano Perpetuo sea de utilidad a historiadores, escritores, científicos, anticuarios, genealogistas, expertos en pandemias, y a cualquiera que necesite manejar fechas gregorianas pasadas, presentes y futuras...


La apariencia de la interfaz gráfica de usuario y los controles son los mismos que los del calendario anterior (enlace aquí), por lo que no los voy a explicar de nuevo.

Como mejora, he añadido la posibilidad de cambiar el idioma desde el propio calendario (celda G3) y, sobre todo, la posibilidad de elegir el día en que comienza el calendario gregoriano (celda G2), ya que es diferente en distintos países o estados dentro de un mismo país.

Como se puede ver en la imagen, el 15 de octubre de 1582 fue el primer día del Calendario Gregoriano en Italia, España, Polonia, Portugal y en varios estados de USA: Texas, Florida, California, Nevada, Arizona y New Mexico. Al jueves -juliano- 4 de octubre de 1582 le sucedió el viernes -gregoriano- 15 de octubre de 1582. Así desaparecieron 10 días debido a que ya se habían contado de más en el Calendario Juliano, pues este calendario tenía un año regular de 365 días divididos en 12 meses y se agregaba un día bisiesto a febrero cada 4 años.

El Calendario Gregoriano fue introducido en Europa en 1582 y posteriormente fue admitido en muchos países. Se denomina así por ser su promotor el papa Gregorio XIII, quien promulgó su uso por medio de la bula Inter Gravissimas.

Las fechas de adopción del Calendario Gregoriano por países se pueden consultar en el siguiente enlace:

List of adoption dates of the Gregorian calendar per country


En el calendario, que se puede descargar más abajo, en la hoja 'Fechas' se han incluido las fechas más significativas de adopción del Calendario Gregoriano:

En la hoja 'Año>=100' con el calendario, debes seleccionar el primer día del Calendario Gregoriano de tu país o estado en la celda G2 del calendario, siendo válido este calendario a partir de ese día.

Todas las fechas anteriores al día de adopción del Calendario Gregoriano son inexactas, pues se aplicaba el Calendario Juliano y, por lo tanto, los meses representados son incorrectos, quedando marcados en rojo y en cursiva los días anteriores y en rojo el nombre del mes. Si el mes central contiene fechas julianas, el título (rango K2:Q2) está en fondo rojo y pone Error Calendario Gregoriano. Si todos los días del mes central son fechas gregorianas, el título está en fondo azul y pone Calendario Gregoriano.

Si se quiere simular el Calendario Gregoriano para todas las fechas posibles en VBA, se debe elegir el día 1 de enero del año 100, primera fecha "gregoriana" posible en VBA.

En los siguientes enlaces puedes estudiar fórmulas, conversores y calendarios con fechas "julianas" y "gregorianas" de otros autores, a los que agradezco que me hayan ayudado a comprender la complejidad de estas fechas:

  • Conversor online de fechas gregorianas a su número de día juliano, y viceversa, obteniendo también el día de la semana. Es capaz de detectar que las fechas del 5 al 14 de Octubre de 1582 ¡no existen en el Calendario Gregoriano ni en el Calendario Juliano!

Conversión dinámica Día Juliano - www.ugr.es/~eaznar

  • Fórmulas para la conversión de fecha gregoriana a día juliano.

Conversión de fecha a día juliano - agrupacionastronomicamagallanes.wordpress.com

  • Descripción muy completa y pormenorizada en inglés del día juliano y algoritmos de conversión entre fechas gregorianas y julianas.

Julian day - Wikipedia

  • Calendario Gregoriano y Juliano solapados y configurables.

Calendario Octubre 1582 - www.timeanddate.com


No he tratado de crear un Calendario Juliano porque las fechas julianas se escapan del alcance de las funciones de fecha en VBA, que son tratadas como fechas del Calendario Gregoriano ¡hasta donde yo las conozco! ¿o estoy equivocado?

Lo que sí he hecho ha sido indicar en rojo los meses y días que no se corresponden con el Calendario Juliano vigente hasta que se adoptó el Calendario Gregoriano en un país o estado determinado por la lista desplegable de la celda G2.

Por ejemplo, para el día 15 de octubre de 1582, que fue el primer día gregoriano proclamado en el mundo, ese mes de octubre fue muy raro, como se puede ver en la imagen de la izquierda obtenida de este enlace:

En la imagen de la derecha aparece ese mes, tal y como se muestra en la plantilla Excel que se puede descargar al final de este artículo.

Los días previos al 1582-10-15 (en formato AAAA-MM-DD, según ISO 8601 DATE AND TIME FORMAT) están marcados en rojo y en cursiva, para avisar que son días no válidos en el Calendario Gregoriano. Incluso puede ser que no hayan existido nunca, como pasa con los días 5 al 14 de octubre de 1582, que fueron eliminados tanto del Calendario Gregoriano (porque no existían antes de proclamarlo) como del Calendario Juliano (porque el último día de uso de ese calendario fue el 1582-10-04).

Lo que está claro es que el mes de octubre de 1582 en España, Portugal, Italia, Polonia, y en algunos estados de USA, fue el más corto de su historia, al tener únicamente 3 semanas de duración, o sea, 21 días en lugar de 31 días, como es habitual cualquier mes de octubre.

Lo mismo se puede decir para los demás días de comienzo del Calendario Gregoriano, que eliminaron de 10 a 13 días de su Calendario Juliano. Más días cuanto más tarde se cambió al Calendario Gregoriano, para compensar los días de más que llevaba acumulados el Calendario Juliano.

En el siguiente vídeo hago una presentación de este completo calendario. Sube el volumen para escucharlo.



Después de subir el vídeo he hecho una mejora para mostrar el día anterior o posterior de la tabla Fechas.

La fórmula matricial para encontrar el día anterior es:

La fórmula matricial para encontrar el día posterior es:


No voy a explicar aquí las macros necesarias para el funcionamiento y operación de este calendario ni a escribir un tutorial detallado. Quien tenga interés en estudiarlas y analizarlas puede hacerlo, ya que están abiertas sin contraseña y comentadas.

Tampoco voy a explicar las fórmulas empleadas, pues las hojas están protegidas sin contraseña, y ya me he extendido bastante explicando las principales claves de este artículo.

Para los que han leído hasta aquí, lo que si tengo que decir es cuál es el truco principal de este calendario para que sirva como Calendario Gregoriano desde el año 100 de nuestra era, si ficticiamente algún Papa del Siglo I hubiera promulgado una bula papal 1500 años antes de la que proclamó el Papa Gregorio XIII, por la que se abandonó el Calendario Juliano, utilizado desde que Julio César lo instaurara en el año 46 a. C., dando paso al vigente Calendario Gregoriano.


TRUCO DEL CALENDARIO

Haciendo clic en la fila 25 del calendario aparece un calendario auxiliar, en el rango de filas 27:34, con el que se calculan los números de serie de fechas VBA que, como ya sabemos, pueden ser negativos:



Gracias a trabajar con los números de serie de fechas VBA podemos generar calendarios que no están limitados a años a partir de 1900, como ocurre con los números de serie de fechas en Excel.

El rango permitido de fechas en VBA en formato ISO 8601 (AAAA-MM-DD) es:

  • Día 0100-01-01: Núm. Serie VBA = -657434
  • Día 9999-12-31: Núm. Serie VBA = 2958465

En este calendario auxiliar los números de serie mayores a 60 se muestran como el número de día del mes y para los números de serie menores a 61, incluidos todos los negativos, se muestra su valor con formato condicional en color rojo y letra cursiva, y con el formato de celdas de número personalizado: [>60]d;-0;0; 

Se han elegido números de serie menores de 61 porque las fechas de enero y febrero de 1900 se calculan también con números de serie VBA, pues son incorrectos los números de serie Excel para esos dos meses, ya que MS Excel considera erróneamente bisiesto el año 1900.


Descarga del calendario

Descarga este Calendario Gregoriano Perpetuo desde Google (con el botón "Excel Download") o desde el enlace a Microsoft OneDrive:

Calendario Perpetuo desde antes de 1900 PW1.xlsm 


Abre el archivo, permite su edición y habilita las macros para probar este singular calendario, que me he atrevido a diseñar al no encontrar en Internet ninguno parecido. Si sabes de alguien que haya publicado algún calendario similar en Excel, ¡por favor! ¡quisiera saberlo!

Este calendario viene con los Días de Independencia de varios países obtenidos de la Wikipedia (enlace aquí).


Copyright

Yo, Pedro Wave, estoy publicando bajo una licencia Creative Commons License

Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)

https://creativecommons.org/licenses/by-nc-sa/3.0/


Los términos de la licencia son:

  • Atribución: Otorgue el crédito apropiado, especialmente mantenga mi nombre y el nombre de mi blog en el libro de trabajo y el código.
  • Compartir igual: Regalarlo gratis. Lo estoy regalando gratis, así que también tiene que hacerlo igual.
  • No comercial: No use mi plantilla y código para crear una plantilla o libro de trabajo para la venta comercial.


El próximo artículo será sobre un Control de Calendario con Fechas y Horas, seleccionadas simulando ruletas por cada par de cifras, que publicaré como un complemento (Add In) en Excel:



Lo que ya no sé ahora mismo es si lo llegaré a publicar antes de que acabe este inusual año 2020, o al comienzo del próximo Año Nuevo 2021, que aprovecho para felicitar desde aquí a todos mis lectores, y que continuará con la nueva normalidad que nos depararán los años y siglos venideros, para los que está preparado este Calendario Gregoriano Perpetuo en Excel.

¡¡¡ Al menos hasta que acabe el año 9999 !!!

No Response to "Calendario Perpetuo desde antes de 1900"

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