Calendario ático
Publicado el 3 de Targelión, Ol.700.3. Actualizado el 29 de Esciroforión, Ol.700.3.
attic.c
attic.c es un programa en C que muestra la fecha actual en el calendario ático (el calendario festivo lunisolar usado en la antigua Atenas) en el terminal sin necesidad de usar servicios en línea. Es una traducción a C del algoritmo escrito por Xanthe en Javascript con varias adiciones de mi parte. El programa usa la librería SunCalc que también traduje a C (o al menos solo las partes que necesitaba).
Por defecto el programa calcula solsticios y lunas nuevas al amanecer desde el punto de vista de tu ubicación, no de Atenas. Esto puede ser cambiado en las opciones, pero es una diferencia con el algoritmo de Xanthe que debes tener en cuenta. Hice este cambio porque considero que tiene más sentido que la fecha lunisolar refleje el cielo local. Esto obviamente significa que la fecha ática calculada puede no ser la misma en todo el mundo debido a que las lunas nuevas no ocurren a la misma hora globalmente (aunque sí en el mismo momento).
El programa asume que el día empieza al atardecer, a diferencia del calendario gregoriano. Es posible cambiar las opciones para que los días empiecen al amanecer o a medianoche, a gusto.
Dado que el programa debe calcular atardeceres, puede que no funcione muy bien dentro de los círculos polares.
Usa attic.c en conjunto con hora.c para también estar al tanto de la hora.
Puede que hayan inexactitudes en los cálculos y errores en el código. No pretendo que attic.c sea un programa autoritativo, es decir, que calcule la fecha ática estándar, así que úsalo bajo tu propio riesgo.
Uso
Para usar attic.c, descarga el código fuente
y compila el programa con cc -o attic attic.c suncalc.c
-lm
. Al ejecutarlo sin opciones, la fecha ática actual se muestra
en el formato Ol.(olimpiada).(año de la olimpiada) (nombre del mes)
(día del mes):
Ol.700.3 Thargelion 3
Opciones
-r
: se muestra la fecha ática con sus valores en
bruto (olimpiada año mes día) separados por espacios para su uso en otros
programas. Aquí el mes es un número del 0 al 12, donde 0 es hecatombeón.
6 siempre es el mes intercalar posideón II, por lo que 7 es gamelión y
así sucesivamente.
700 3 11 3
-i
: se muestra la fecha ática en formato pseudo-ISO 8601
(OOO-Y-MM-DD). Aquí los meses siempre van de 1 a 12, pero en un año bisiesto
el mes intercalar posideón II se muestra como 06.2
.
700-3-11-03
-a
: se muestra la fecha ática como sin opciones, excepto que
el nombre del mes está abreviado.
Ol.700.3 Tha. 3
Configuración
Si necesitas cambiar más opciones del programa, te invito a modificar el código fuente y recompilar el programa. Los siguientes macros alteran el comportamiento del programa:
LATITUDE
: La latitud de tu ubicación.LONGITUDE
: La longitud de tu ubicación.HEIGHT
: La altitud de tu ubicación en metros sobre el nivel del mar. Puedes dejarla en 0 o darle un valor para un poquito más de precisión.LAT_ATHENS
: La latitud de Atenas.LNG_ATHENS
: La longitud de Atenas.HGT_ATHENS
: La altitud de Atenas en metros sobre el nivel del mar. Puedes dejarla en 0 o darle un valor para un poquito más de precisión.USE_NORTHERN_NEW_YEAR
: Si es 0, se considera que el año nuevo empieza en el solsticio de diciembre. De lo contrario (la opción por defecto), el año nuevo empieza en el solsticio de junio. Te interesaría poner esta opción en 0:- Si vives en el hemisferio sur y quieres que los meses se alineen con las mismas estaciones que en el hemisferio norte (por ejemplo, que hecatombeón empiece en diciembre junto con el verano).
- O si simplemente consideras que el año nuevo debería empezar en invierno en vez de verano (o vice versa).
USE_ATHENS_TIMES
: Si es 1, se usan las coordenadas de Atenas dadas enLAT_ATHENS
,LNG_ATHENS
yHGT_ATHENS
para calcular las fechas de solsticios y lunas nuevas. De lo contrario (la opción por defecto), se usan tus coordenadas dadas enLATITUDE
,LONGITUDE
yHEIGHT
para estos cálculos.DAY_START
: Determina en qué momento empieza el día. Puede tomar tres valores:MIDNIGHT
: Los días empiezan a medianoche.SUNRISE
: Los días empiezan al amanecer.SUNSET
: Los días empiezan al atardecer (opción por defecto).
EPOCH
: Define el año de la primera olimpiada. El valor por defecto es -775 (776 a. C.). Por ejemplo, si lo cambias a 0 las olimpiadas se contarán a partir del año 1 a. C. y tendrás un calendario ático cristiano. ¡Un interesante pensamiento sin duda!