Cómo validar un cálculo del calendario chino

Fechas de referencia

Valide por separado la conversión de fechas lunares, los tiempos de los términos solares, las clasificaciones del almanaque y el comportamiento de la interfaz. La concordancia en una parte no demuestra que las demás sean correctas. Un conjunto útil de comprobaciones incluye límites de mes y de año, además de fechas situadas dentro de un mes.

Elija una referencia independiente que declare su convención de calendario y su cobertura. Un segundo sitio web que utilice el mismo motor de cálculo puede reproducir los mismos errores. Registre la edición o versión de la referencia junto con los valores esperados, de modo que pueda rastrearse un cambio posterior.

El Atlas admite fechas civiles del año 1 d. C. al 2100. Su motor de cálculo, fijado a una versión concreta, utiliza fechas civiles julianas hasta 1582-10-04, seguidas por la fecha gregoriana 1582-10-15. Del 5 al 14 de octubre no existen en esa secuencia de fechas civiles. Una comparación que utilice el calendario gregoriano extendido al pasado antes de su introducción, llamado calendario gregoriano proléptico, está comprobando una correspondencia diferente para las fechas anteriores.

Esta convención describe las designaciones de fecha civil del programa. No establece qué calendario se utilizaba históricamente en China. Compruebe los extremos admitidos y el tratamiento de las fechas que queden fuera de ellos. Un intervalo de fechas civiles también es distinto de un intervalo de años lunares completos, cuyos límites caen en días diferentes.

Almacene cada resultado con la fecha civil y la convención de calendario completas, el año lunar, el número del mes lunar, el indicador intercalar y el día lunar. Distinga el número del mes de su posición en el año: el sexto mes intercalar es el séptimo mes cronológico, pero su número de mes sigue siendo seis.

Casos de prueba

Comprobaciones de fechas exactas

Estas fechas abarcan el Año Nuevo chino, un día bisiesto gregoriano válido y ambos extremos de meses lunares ordinarios e intercalares. En esta tabla, el número del año lunar es el año gregoriano en el que comienza ese año lunar. «Ordinario» significa que el indicador intercalar es falso.

Fecha gregorianaAño lunarMesTipoDía lunar
2024-02-09202312Ordinario30
2024-02-1020241Ordinario1
2024-02-2920241Ordinario20
2025-07-2420256Ordinario30
2025-07-2520256Intercalar1
2025-08-2220256Intercalar29
2025-08-2320257Ordinario1
2033-12-21203311Ordinario30
2033-12-22203311Intercalar1
2034-01-19203311Intercalar29
2034-01-20203312Ordinario1
2034-02-1920341Ordinario1

Realice la conversión de cada fecha en ambos sentidos. La conversión de gregoriano a lunar debe producir los cuatro campos lunares, y la conversión de lunar a gregoriano debe recuperar la fecha indicada. Después compruebe toda la secuencia en torno al límite, no solo su primer día. Esto permite distinguir un inicio de mes incorrecto de una etiqueta de visualización que omite el indicador intercalar.

Una conversión de ida y vuelta no basta por sí sola para demostrar exactitud. Dos funciones pueden compartir la misma tabla errónea y aun así deshacerse perfectamente una a otra. Comparar con valores esperados independientes es una comprobación aparte. Una comparación exhaustiva debe registrar cuántas fechas se compararon, qué referencia se utilizó y todas las discrepancias.

Comprobaciones estructurales y de entrada

ComprobaciónComportamiento esperado
Avanzar desde el último día de un mes lunarDía uno del siguiente mes cronológico, con el número de mes, el indicador intercalar y el año lunar correctos
Avanzar de un mes ordinario a su mes intercalarRepetir el número del mes y cambiar el indicador intercalar a verdadero
Avanzar de un mes intercalar al mes siguienteDesactivar el indicador intercalar y avanzar el número del mes, incluido cualquier cambio de año necesario
Solicitar el día 30 del sexto mes intercalar de 2025, que tiene 29 díasRechazar la fecha lunar inexistente
Solicitar un mes intercalar en un año en el que ese mes intercalar no existeRechazarlo en lugar de sustituirlo por el mes ordinario
Introducir el 29 de febrero de 2000 y después el 29 de febrero de 2100Aceptar la primera fecha gregoriana y rechazar la segunda
Introducir el 29 de febrero de 1500 según la convención juliana del AtlasAceptarlo como una fecha juliana válida
Avanzar un día civil desde 1582-10-04 según la convención de cambio de calendario del AtlasLlegar a 1582-10-15, exactamente un día transcurrido después
Convertir una fecha válida a lunar y luego de vueltaRecuperar la fecha original sin perder la identidad del mes intercalar

El calendario juliano añade un día bisiesto cada cuatro años. La regla gregoriana excluye los años de fin de siglo salvo que sean divisibles por 400, por lo que una prueba de día bisiesto debe especificar el calendario civil.

Las comprobaciones de rechazo describen una interfaz estricta de introducción de fechas. Una biblioteca subyacente también puede ofrecer una normalización documentada, como trasladar un día fuera de intervalo al mes siguiente. Compruebe estos comportamientos por separado, en lugar de confundir un valor normalizado con la entrada original.

Comprobaciones de la interfaz

Pruebe el cambio de idioma, la actualización del navegador, la navegación entre meses y la entrada del Almanaque por separado de las funciones de conversión. Un cambio de idioma debe conservar la fecha seleccionada y el mes mostrado. Explorar otro mes debe conservar el día seleccionado hasta que se elija uno nuevo. Compruebe que la entrada del Almanaque abre la fecha gregoriana local del dispositivo y que una página de fecha permanente mantiene su fecha civil escrita en otro huso horario.

Incluya un momento de prueba en el que la fecha local del dispositivo difiera de la fecha de referencia del calendario. Esto detecta el error de utilizar el reloj de referencia astronómica para elegir la fecha del Almanaque, o de utilizar el reloj del navegador para reconstruir los límites de los meses lunares.

Términos solares y límites

Una comparación de términos solares necesita la identidad del término, la fecha civil, la hora, la norma horaria y la precisión publicada. Sitúe ambos valores en el mismo calendario civil y la misma norma horaria antes de compararlos. Una hora publicada al minuto no puede demostrar una coincidencia al segundo.

Compruebe la fecha de calendario asignada por separado de la tolerancia de la marca de fecha y hora. Una diferencia inferior a un minuto puede ser aceptable para una visualización redondeada y, sin embargo, situar un acontecimiento en el lado incorrecto de la medianoche. Documente cualquier incertidumbre conocida para ese límite concreto, en lugar de ampliar la tolerancia para todas las fechas.

Incluya una luna nueva y un término principal que ocurran en la misma fecha de referencia. El término pertenece al nuevo mes de calendario aunque su instante sea anterior a la conjunción. Una prueba basada únicamente en el orden de las marcas de fecha y hora de los acontecimientos puede pasar por alto esta distinción.

Para la numeración de los meses intercalares, incluya la secuencia de 2033–2034. El octavo mes ordinario de 2033 y el primer mes de 2034 carecen de término principal, mientras que el mes intercalar situado entre ellos es el once. Un cálculo que trate como intercalar todo mes sin término principal fallará estas comprobaciones.

Comprobaciones del almanaque e históricas

Clasificaciones del almanaque

Yi significa actividades propicias y Ji significa actividades que evitar. Coincidir en una luna nueva o una fecha lunar no valida estas listas. Compruebe sus reglas de consulta frente a la convención o el conjunto de datos del almanaque seleccionado y después compruebe por separado las etiquetas de actividad en inglés. Un resultado explícito de «ninguna» también debe seguir distinguiéndose de la falta de datos.

Cuando una clasificación del almanaque cambie en un término solar, registre si su límite es el comienzo del día de calendario de ese término o su instante exacto. Compruebe ambos lados del límite elegido. Estas clasificaciones mensuales no tienen por qué cambiar al comienzo de un mes lunar.

Ganzhi, el ciclo de troncos y ramas, también necesita un límite de año declarado. Una designación anual basada en el Año Nuevo chino y otra basada en el Inicio de la primavera, o Lichun, pueden diferir durante el intervalo entre esos límites. Compare cada campo utilizando su convención declarada.

Conversión histórica

Para un documento histórico, establezca su año dinástico o de era, la localidad, la designación del mes, la indicación intercalar y cualquier día Ganzhi registrado antes de elegir un método de conversión. Los calendarios anteriores utilizaban métodos astronómicos y convenciones horarias diferentes. Por tanto, un cálculo moderno extendido al pasado puede diferir del calendario utilizado realmente para el registro.

Mantenga la transcripción, su interpretación y la fecha convertida como campos separados. Cuando un documento proporcione tanto una fecha numerada como un día Ganzhi, compruebe su concordancia en lugar de descartar uno para que el otro encaje.

1–2100 d. C.

Política de privacidad