Red de conocimiento informático - Problemas con los teléfonos móviles - Problema de VB (cómo calcular nonglidata(n) en el calendario lunar)

Problema de VB (cómo calcular nonglidata(n) en el calendario lunar)

NongliData guarda datos del calendario lunar desde 1921 (NongliData(0)) hasta 2021 (NongliData(99)).

Realizado según el calendario lunar, no existe ningún algoritmo.

Tenemos que trabajar duro para decodificarlo. Déjame explicártelo, espero que lo entiendas.

Para ponerte un ejemplo: NongliData(0)=2635 es el dato de 1921. El número binario es 101001001011, de 12 dígitos, correspondiente a los 12 meses del calendario lunar. El primer número de izquierda a derecha es 1, por lo que el primer mes de 1921 tiene 30 días. El segundo dígito es 0, por lo que febrero de 1921 tuvo 29 días. Etcétera.

¿Qué debo hacer si es un mes bisiesto en el calendario lunar? Por ejemplo, el año 1922 en el calendario cae en el quinto mes bisiesto del calendario lunar.

En Nonglidata, encontrará que hay muchos valores mayores que 4095. Por ejemplo, el año 1922 es NongliData (1) = 333387 y el valor binario es 1010001011001001011. El calendario lunar en 1922 tiene 13 meses (incluido el mes bisiesto lunar). Eliminelos. Los primeros 101000, 1011001001011 son 13 meses de datos y los meses bisiestos se almacenan en 101000. Después de eliminar los últimos tres ceros, 101 es el mes bisiesto en. 1922 y 101 es 5 en decimal.

En cuanto a los tres ceros del medio, se añaden para una mejor alineación durante la programación.

Mira la sección If (curMonth = (Int(NongliData(m) / 65536) + 1)) Entonces en el programa,

333387/65536 se redondea a 5, lo que expresa el año 1922 Es mayo bisiesto.