Paso 1 — Obtener amanecer y ocaso (correctamente)
- ✦Usar la zona horaria del lugar (incluidas las reglas de DST).
- ✦Usar la fecha civil local (no fechas UTC).
Paso 2 — Calcular la duración de las horas temporales
Sean sunrise, sunset y nextSunrise tiempos locales.
dayLen = sunset - sunrise
nightLen = nextSunrise - sunset
dayHour = dayLen / 12
nightHour = nightLen / 12Paso 3 — Construir los 24 límites
- Hora diurna i:
[sunrise + (i-1)*dayHour, sunrise + i*dayHour] - Hora nocturna j:
[sunset + (j-1)*nightHour, sunset + j*nightHour]
Paso 4 — Asignar los regentes planetarios
Usar el orden caldeo: Saturno → Júpiter → Marte → Sol → Venus → Mercurio → Luna (repetir).
- ✦La primera hora diurna comienza con el regente del día.
- ✦La secuencia continúa sin interrupción a través del día y la noche (no se reinicia a medianoche).
Notas de implementación
- ✦Manejar con cuidado los casos polares (sin amanecer/ocaso).
- ✦Conservar los límites con precisión de segundos para evitar desajustes en la interfaz.
- ✦El formato 12h/24h es solo de visualización; el cálculo interno permanece absoluto.
Siguiente: Horas desiguales explicadas · Cómo leer la tabla