Para escribir un programa de calendario perpetuo, primero debe comprender las características del calendario perpetuo.
Las siguientes son las características del calendario perpetuo (copiadas y pegadas):
1. Un año promedio tiene 365 días (52 1 día en una semana), 366 días en un año bisiesto (52 semanas y 2 días). Hay 28 días en febrero en los años normales y 29 días en los años bisiestos.
Dado que el 1 de enero es sábado, el 1 de marzo es miércoles. ——Preste atención a los "tres"
Para que el algoritmo sea el más simple, este algoritmo utiliza "semana" como unidad de cálculo. Y seleccione el 1 de marzo como mes base.
2. Un salto cada 400 años, o un salto cada 4 años que no sean cien años. (Razón: el tiempo que tarda la Tierra en orbitar alrededor del Sol es 365 días, 5 horas y 46 segundos. Para que el número de días de un año sea un número entero, el número de días de un año se establece en 365 días. Cuando se acumula el tiempo restante, cuatro años son 23 horas, 15 minutos y 4 segundos, casi un día. Suma este día a febrero de un año determinado para formar 29 días. Se llaman años ordinarios, pero sumar un día a cuatro años requiere 44 minutos y 56 segundos adicionales, y este número suma 400. Hay tres días en un año, por lo tanto, solo puede haber 97 años bisiestos en 400 años. cualquier año que sea divisible por 400, o no divisible por 100 pero sí divisible por 4, es un año bisiesto)
Entonces cien años 4= 0 bisiesto o (año 4 = 0 y año lt. ; gt; 0) salto.
3. Cada 4 años (3 años ordinarios y 1 año bisiesto) ***208 semanas y 5 días - preste atención a estos "5 días"
***100* cada cien años (208 semanas y 5 días) - 1 día = 5217 semanas y 5 días - preste atención a estos "5 días" (los cien años completos se establecen temporalmente como años ordinarios)
*** 4* cada 400 años (5217 semanas y 5 días) 1 día (400 años completos de años bisiestos) = 20871 semanas y 0 días - preste atención a los "0 días" y "1 día" (solo hay un año bisiesto en 4 cien años completos)
Es decir, ¡un ciclo de 400 años! (Resulta que Perpetual Calendar era la misma empresa hace 400 años)
En cuanto a la alineación de fechas y semanas que mencionaste, déjame darte algunas ideas: cada línea tiene 7 días y cada día puede ser configurado para ocupar 10 caracteres (al mismo tiempo que lo anterior La semana también debe ocupar 10 caracteres. Supongamos que el primer día del mes es jueves, luego se deben generar 10 × 3 caracteres para ocupar el espacio antes de generar 1). Cuando se muestra la fecha del domingo, se cambia la siguiente línea y el resto es simple
.