🔝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
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:
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!
- 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.
- Calendario Gregoriano y Juliano solapados y configurables.
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: