Algoritmo del calendario solar al calendario lunar
Es imposible intentar utilizar una fórmula simple sin utilizar muchos datos (aunque se puede simplificar) como un calendario perpetuo para lograr el propósito de convertir entre los calendarios gregoriano y lunar. Todo el software que podemos ver que convierte el calendario gregoriano al calendario lunar contiene datos de calendario para diferentes años.
Entre estos datos, el más importante es el número de días que tiene cada mes del calendario lunar. Debido a que el calendario lunar es un calendario lunar, la parte del calendario lunar (basada en la fase de la luna) determina un determinado día del mes, y la parte del calendario solar (basada en la altura del sol) es la término solar. Los términos solares básicamente corresponden directamente al calendario gregoriano y son fáciles de calcular, mientras que la relación entre el ciclo de las fases lunares y la revolución terrestre es relativamente compleja y generalmente requiere datos de observación astronómica para dar la hora, por lo que no existe una fórmula sencilla para calcularla; si un mes lunar es una luna grande o una luna pequeña.
En cuanto a los saltos del calendario gregoriano y del calendario lunar, existen ciertos métodos de cálculo y no es difícil.
Si se trata solo de datos astronómicos, aún se pueden contar; debido a que el ciclo astronómico es muy estable, solo necesitamos calcularlo estrictamente de acuerdo con el ciclo astronómico. Pero hay otro punto problemático, es decir, el calendario solar y el calendario lunar no siguen estrictamente los ciclos astronómicos reales, y hay muchos factores humanos. La más famosa es que el emperador romano revisó muchas veces la duración de febrero y agosto y, debido a cálculos inexactos, el décimo día fue eliminado artificialmente del calendario juliano. En China, la discrepancia entre el calendario publicado y los fenómenos celestes se debe a observaciones astronómicas antiguas inexactas (no podemos exigir la precisión de las observaciones antiguas). Por tanto, estos dos calendarios están relacionados con la sociedad de una época, por lo que no existen reglas determinadas a seguir.
La tabla comparativa para convertir el calendario lunar al calendario gregoriano es el domingo 29 de abril de 1945 en el calendario gregoriano.
¿Cómo convertir el calendario lunar y el calendario gregoriano? (¿Cómo calcular?) ¿Calculas con la boca o con un bolígrafo?
Déjame decirte que esto no es confiable y no se puede calcular en absoluto, y la transformación involucrada no es una fórmula simple. Al contrario, su transformación es bastante compleja.
Si está interesado en escribir un programa, puedo proporcionarle una biblioteca de funciones de conversión. Puede convertir entre el calendario lunar y el calendario gregoriano llamando a una función.
En la actualidad, he completado la conversión perfectamente y puedo proporcionársela si es necesario.
¿Cuál es el algoritmo para convertir fechas a calendario lunar? Método 1 para convertir el calendario solar al calendario lunar en Excel: use la función de texto. La columna A es la fecha del calendario gregoriano Ingresamos la fórmula en la celda B1: = texto (A1, [$-130000] AAAA año M mes & If (len (-text (a1, [$-130000] DD)) = 1. ,Chu,)&;d), desplácese hacia abajo para completar la conversión del calendario gregoriano al calendario lunar.
¿Cómo convertir la fórmula del calendario solar del calendario lunar en excel? Por ejemplo, hoy es 2 de septiembre de 2010. Puedes utilizar la siguiente fórmula para obtener el 24 de julio en el calendario lunar:
Aunque el resultado es un poco insatisfactorio cuando te encuentras con un mes bisiesto, como se muestra a continuación, febrero 9 de diciembre de 2010 en el calendario lunar La fecha debería ser el 26 de diciembre, pero debido a que ese año hubo un mayo bisiesto, hubo un mes inocente adicional. Pero es mucho más rápido que codificar y los meses bisiestos no ocurren todos los días.
Si la fórmula se cambia a =MID(metilo, etilo, propilo, butilo, hexilo, octilo, no undecilo, mod (text (a2, [$-130000] e) -4,10) +1)&MID(Zichou Mao Yinchen pidió una carta al mediodía), mod (text (a2,[$-130000] e)-4,12)+1,1)&year & Text (a2, [$-130000] [DBM num 1]m mes)&;Text (A2, if (-text (A2, [$-130000] d) = 10, el décimo día, if (-text (A2, [$-130000] d) > 10, [$-130000][dbnum 1]d, Chu[$-13000][dbnum 654440
La implementación del algoritmo del calendario solar al calendario lunar El siguiente es un calendario lunar sobre el algoritmo VB.
Los datos de fecha se definen de la siguiente manera
Los primeros 12 bytes representan que 1-12 es un mes grande o pequeño, 1 es un mes grande de 30 días, 0 es un mes grande de 29 días. día mes pequeño;
13 es un mes bisiesto, 1 es un mes grande con 30 días y 0 es un mes pequeño con 29 días;
El dígito 14 es el mes de mes bisiesto. Si no es bisiesto es 0, en caso contrario da el mes. 10, 11 y 12 están representados por A, B y C respectivamente, es decir, se utiliza el sistema básico de 16.
Los últimos cuatro dígitos son la fecha del Año Nuevo Lunar de ese año, es decir, la fecha de 65438 + 1 de octubre en el calendario gregoriano. Por ejemplo, 0131 representa 65438 + 31 de octubre.
La función getchgdate (byval v date es una cadena, byval chg type es el modo de conversión) es una cadena.
dim vvdate()As String = Split(vDate,-)
¿Qué pasa si vvdate(0)>0;2011 o vvdate(0)>
Calcula la fórmula de conversión entre el calendario lunar y el calendario solar
1. El método para calcular la fecha lunar a partir del calendario solar:
Como se mencionó anteriormente, la fecha del calendario lunar. Se basa en la luna llena, y cada luna nueva se utiliza como base. El primer día del mes lunar, la luna llena es el quince (el decimosexto día de la luna grande) y la luna oscura es el veintinueve (. el trigésimo día de la gran luna).
¿Si quieres saber qué día es el 8 de junio de 1984? Podemos utilizar la fórmula para calcular la fecha del calendario lunar: por ejemplo: número de años - 1977 (o 1901) = 4q + R.
Entonces: fecha lunar = 14q+10.6(r+1)+número de fecha de un año-29.5n (Nota: en la fórmula, q, r, n son todos números naturales, r >; < /p >
Cómo convertir el calendario gregoriano al calendario lunar nombre de semana dim (7), mes más (11), no glidata (99), tallos celestiales (9), ramas terrestres (11), erudito (165438)
Atenuar curTime, curYear, curMonth, curDay, curWeekday
Atenuar GongliStr, WeekdayStr, NongliStr, NongliDayStr
Atenuar i, m, n, k, isEnd, bit , TheDate p>
Subform_Load() privado
Obtener la hora actual del sistema
curTime = Now()
Nombre de esta semana
Nombre de la Semana(0) = *
Nombre de la Semana(1) = Domingo
Nombre de la Semana(2) = Lunes
Nombre de la Semana(3) = Martes
Nombre de la Semana(4) = Miércoles
Nombre de la Semana(5) = Jueves
Nombre de la Semana(6) = Viernes
Nombre de la Semana(7) = Sábado
天干(0) = A.
天干(1) = B.
天干(2).
Tallo Celestial(3) = d
Tallo Celestial(4) = E
Tallo Celestial(5) = Naturaleza Propia
Tallos Celestiales(6) ) = Geng
Tallos Celestiales (7) = Picante
Tallos Celestiales (8) = Ren
Tallos Celestiales (9) = Gui
Nombre de las ramas terrestres
DiZhi(0) = niño
DiZhi(1) =Chou
DiZhi(2) =Yin
Di Zhi③=Mao
Di Zhi(4) =Chen
Di Zhi(5) = Si
Di Zhi(6 ) =Mediodía
Di Zhi(7) =No
Di Zhi(8) =Shen
Di Zhi(9) =Tú
Di Zhi(10) = 0
Di Zhi (11) =Mar
Nombre de la constelación animal
Libros (0) =Ratón
Libros (1) =Buey
Libros (2) =Tigre
Libros (3) =Conejo
Libros (4) =Dragón p>
Libro ( 5) =Serpiente
Libro (6) =Caballo
Libro (7) =Oveja
Libro (8) =Mono
Bookish (9) = Pollo
Bookish (10)= & amp;q...& gt& gt
Cómo convertir el calendario lunar al calendario solar, busque el algoritmo int lunarInfo[ ]={/*Datos del calendario lunar*/
0x04bd8, 0x04ae0, 0570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2,
0x04ae0, 05b6, 04d0, 0x0d250 0x1d255 04970,
0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 1c8d7, 0x0c950,
0x0d4a0, 0x1d8a6 , 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092 d0, 0x0d2b2, 0950, 0x0b557,
0x06ca0, 0x0b550, 0x15355, 0x04da0, 05d0, 3, 0x052d0, 09a8, 0x0e950, 0x06aa0,
0ea6, 0b50, 0x04b60, 0ae4, 0570, 0x05260, 0x0f263, 0 x0d950, 0x05b57, 0x056a0, p>
0x096d0, 0x04dd5, 0x04ad0, 04d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b5a0, 0x195a6,
0x095b0, 0x049b0, 0974, 04b0, 0x0b27a, 0x 06a50, 0x06d40, 0f46, 0b60, 0x09570,
0x04af5, 0x04970, 0x064b0, , 0x0ea50, 0x06b58, 0x055c0, 0b60 , 0x096d5, 0x092e0,
0x0c960, 0x0d954, 0x0d4a0, 0x 0da50, 0x07552, 0x056a0, 0bb7, 0x025d0, 0x092d0, 0x0cab5,
0950, 0b4a0, 0x 0ba 4, 0d50, 0x055d9,
0x04ba0, 05b0, 0x15176, 0x052b0, 0930,
0x07954, 0x06aa0, 0d50, 0x05b52, 0x04b60, 06e6, 04e0, 0x0d260, 0x0ea65,
0x05aa0 ,0x076a3,0x096d0, 0x04bd7, 0x04ad0, 04d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45,
0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0577, 04b0, 0a50, 55, 0x06d20, 0da 0};
int solarMonth[]={31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31};
-
int y años(int y) ){
int i, suma = 348
for(I = 0x 8000;i>0x8i>& gt= 1)sum+=(lunarInfo[y-190... ...& gt& gt