Red de conocimientos turísticos - Pronóstico del tiempo - Calcular fechas lunares usando Excel

Calcular fechas lunares usando Excel

Función bj(StrA, StrB) bj = " 'Inicialización de la función. Si no hay contenido idéntico, o hay una columna de texto vacía, se genera un resultado vacío. si Len(StrA)<Len(StrB) entonces< /p >

StrShort = StrA

StrLong = StrB

LenShort = Len(StrA)

LenLong = Len(StrB)

Otros

StrShort = StrB

StrLong = StrA

LenShort = Len(StrB)

LenLong = Len(StrA)< /p >

End If 'Primero compara las longitudes de las palabras y asigna valores para I = LenShort a 1 Paso-1 'Recorre desde la longitud máxima de caracteres Len Short hasta el carácter más corto StrShort "I" veces

Para j =. 1 a len short-I+1 'Para la palabra más corta StrShort, comience desde su primera letra y realice un bucle de acuerdo con la longitud de la palabra "I"

StrC = Mid(StrShort, j , I)' de lo anterior Tome los caracteres seleccionados de entre los caracteres, comenzando desde la primera letra, ordenados por longitud de palabra "I", como caracteres de comparación

Para k = 1 a lenlong-i+. 1 'Para la palabra más larga StrLong, comienza con la primera letra y termina con la misma longitud de palabra "I"

StrD = Mid(StrLong,k,I)' Tome el carácter anterior StrLong y seleccione el longitud de palabra "I" desde la primera letra "Compare los mismos caracteres;

Si StrD = StrC, compare. Si los contenidos comparados son iguales, la función tiene el resultado correcto.

Bj = StrC 'Resultado de salida.

"Salir de la función" finaliza la función

Terminará si...

Siguiente k

Siguiente j

Siguiente función iEnd

Forma de cadena mayúscula de la función rmbs (variante RNG)

Inestable

Si no es vba es numérico (RNG) luego rmbs = " ": función de salida 'Devuelve cero si no es un número

Si RNG = " "entonces rmbs = "": función de salida 'Devuelve nulo si es nulo <. /p>

Si RNG = 0, entonces RMB = "":función de salida 'Si 0, devuelve "redondeo a cero".

Rmbs = replace(apply.text(round(RNG,2),"[dbnum2]","","circle"),"-","negative")' con una precisión de dos dígitos, el punto decimal se reemplaza por un círculo y el signo negativo se reemplaza por "negativo"

Rmbs = IIF (izquierda (derecha (rmbs, 3), 1) = "círculo", izquierda (rmbs, len(rmbs)). -1)&"ángulo"&right(rmbs,1)&"punto",iif(left(right(rmbs,2),1) = "círculo",rmbs&"ángulo",rmbs& amp; "círculo"))

Rmbs = Reemplazar(Reemplazar(Rmbs,"círculo cero","ángulo cero","ángulo cero)"Reemplazar el carácter del ángulo cero.

Función final Función pública NongLi (se puede seleccionar XX_DATE como fecha)

Dim MonthAdd(11), NongliData(99), Tiangan(9), Dizhi(11), Shuxiang ( 11), DayName(30), MonName(12)

Calendario lunar, calendario lunar, calendario lunar, calendario lunar

Dim GongliStr, NongliStr, NongliDayStr

Dim i, m ,n,k,isEnd,bit,TheDate 'Obtiene la hora actual del sistema.

CurTime = XX_DATE 'Nombre de Tiangan

Tiangan (0) = "Uno"

Tiangan (1) = "B"

Tallo Celestial(2) = "C"

Tallo Celestial(3) = "Ding"

Tallo Celestial(4) = "E"

Tallo Celestial (5) = "Ji"

Tallo del Cielo (6) = "Geng"

Tallo del Cielo (7) = "Corazón"

Tallo del Cielo (8 ) = "Ren"

p>

Tallos Celestiales (9) = "癸"

Nombre de las Ramas Terrenales

Ramas Directas (0) = "子"

Sucursales Digital Directas (1) ="Ugly"

Di Zhi(2) ="Yin"

Di Zhi(3) ="Mao"

Di Zhi(4) =" Chen"

DiZhi(5) = "Sí"

DiZhi(6) = "Mediodía"

Pregunta 7) = "No"

Rama directa (8) = "Shen"

Rama directa (9) = "Tú"

Di Zhi (10) = "Xu"

Tierra (11) = "Mar"

Nombres de constelaciones de animales

Libros (0) = "Rata"

Afición a los libros (1) = "Vaca"

Afición a los libros (2) = "Tigre"

Afición a los libros (3) = "Conejo"

Afición a los libros (4) = "Dragón"

p>

Erudito (5) = "Serpiente"

Erudito (6) = "Caballo"

Erudito (7) = "Oveja"

Afición a los libros (8) = "Mono"

Afición a los libros (9) = "Pollo"

Afición a los libros (10) = "Perro"

Afición a los libros (11) = "Cerdo"

Nombre de la fecha del calendario lunar

DayName(0) = "* "

DayName(1 ) = "Primer grado"

NombreDía(2) = "Nivel 2"

NombreDía(3) = "Tercer Grado"

NombreDía(4) = "Nivel 4"

DayName(5) = "El quinto día"

DayName(6) = "El sexto día"

DayName(7) = "El séptimo día"

nombre del día(8)= "Nivel 8"

NombreDía(9) = "Noveno día"

NombreDía(10) = "Día 10"

NombreDía(11) = "Once"

NombreDía(12) = "Doce"

NombreDía(13) = "Trece"

Nombre del día(14) = "14 "

Nombre del día(15) = "15 "

Nombre del día(16) = "Dieciséis"

NombreDía (17) = "Diecisiete"

NombreDía(18) = "18 "

NombreDía(19) = "Diecinueve"

NombreDía( 20 ) = "Veinte "

NombreDía(21) = "21 "

NombreDía(22) = "22 "

NombreDía(23) = "23 "

NombreDía(24) = "24 "

NombreDía(25) = "25 "

NombreDía(26) = "26 "

NombreDía(27) = "27 "

NombreDía(28) = "28 "

NombreDía(29) = "29 "

NombreDía( 30) = "Treinta"

Nombre del mes lunar

MonName(0) = "* "

MonName(1) = "Positivo"

MonName(2) = "dos "

MonName(3) = "tres"

MonName(4) = "cuatro"

MonName(5) = "cinco "

MonName( 6) = "seis "

MonName(7) = "siete "

MonName(8) = "ocho"

MonName(9) = "nueve "

MonName(10) = "十"

MonName(11) = "Eleven"

MonName(12) = "La "

Los primeros días de cada mes en el calendario gregoriano

MonthAdd(0) = 0

mes addd(1)= 31

MonthAdd( 2 ) = 59

AñadirMes(3) = 90

AgregarMes(4) = 120

AgregarMes(5) = 151

mes agregado(6)= 181

mes agregado(7)= 212

MesAgregado(8) = 243

MesAgregado(9) = 273

mes añadido(10)= 304

mes añadido(11)= 334

Datos lunares

NongliData(0) = 2635

NongliData(1) = 333387

NongliData(2) = 1701

NongliData(3) = 1748

NongliData(4) = 267701

p>

NongliData(5) = 694

NongliData(6) = 2391

NongliData(7) = 133423

NongliData(8 ) = 1175

NongliData(9) = 396438

NongliData(10) = 3402

NongliData(11)= 3749

NongliData (12) = 331177

NongliData(13)= 1453

NongliData(14) = 694

NongliData(15)= 201326

NongliData( 16) = 2350

NongliData(17)= 465197

NongliData(18)= 3221

NongliData(19) = 3402

NongliData(20) = 400202

NongliData(21)= 2901

NongliData(22) = 1386

NongliData(23)= 267611

NongliData(24) = 605

NongliData(25) = 2349

NongliData(26) = 137515

NongliData(27) = 2709

NongliData(28) = 464533

NongliData(29) = 1738

NongliData(30) = 2901

NongliData(31) = 330421

NongliData(32) = 1242

Nongli

Datos(33) = 2651

NongliData(34) = 199255

NongliData(35) = 1323

NongliData(36) = 529706

NongliData(37) = 3733

NongliData(38) = 1706

NongliData(39) = 398762

NongliData(40) = 2741

NongliData(41)= 1206

NongliData(42) = 267438

NongliData(43) = 2647

NongliData(44)= 1318

NongliData(45) = 204070

NongliData(46) = 3477

NongliData(47) = 461653

NongliData(48) = 1386

NongliData(49) = 2413

NongliData(50) = 330077

NongliData(51)= 1197

NongliData(52 ) = 2637

NongliData(53) = 268877

NongliData(54) = 3365

NongliData(55)= 531109

NongliData (56) = 2900

NongliData(57) = 2922

NongliData(58) = 398042

NongliData(59) = 2395

NongliData(60)= 1179

NongliData(61)= 267415

NongliData(62) = 2635

NongliData(63) = 661067

NongliData(64) = 1701

NongliData(65) = 1748

NongliData(66) = 398772

NongliData(67) = 2742

NongliData(68) = 2391

NongliData(69) = 330031

NongliData(70)= 1175

NongliData(71)= 1611

NongliData(72) = 200010

NongliData(73) = 3749

NongliData(74) = 527717

NongliData(75) = 1452

NongliData(76) = 2742

NongliData(77) = 332397

NongliData(78) = 2350

NongliData( 79) = 3222

NongliData(80) = 268949

NongliData(81) = 3402

NongliData(82) = 3493

NongliData(83) = 133973

NongliData(84) = 1386

NongliData(85) = 4642

19

NongliData(86) = 605

NongliData(87) = 2349

NongliData(88) = 334123

NongliData(89 ) = 2709

NongliData(90) = 2890

NongliData(91) = 267946

NongliData(92) = 2773

NongliData (93) = 592565

NongliData(94)= 1210

NongliData(95) = 2651

NongliData(96) = 395863

NongliData(97) = 1323

NongliData(98) = 2707

NongliData(99) = 265877

Generar el año, mes y calendario actual del calendario gregoriano. día = = & gtGong Lister

curYear = Año(curTime)

curMonth = Mes(curTime)

curDay = Día(curTime)

GongGongliStr = curYear & amp "Año"

if(curMonth & lt;10)

GongliStr = GongGongliStr & amp0 & amp;Ke Yue& "Luna"

Otros

Gong liStr = Gong Gongli Str & amp Ke Yue & amp "Moon"

Terminará si...

if(curDay < ;10)

GongliStr = GongGongliStr & amp0 & amp;curDay & amp“日”

Otros

GongliStr = GongGongliStr & ampcurDay & amp "日"

Terminará si...

Hora de inicio 1921 Número de días desde el 8 de febrero: 1921-2-8 (el primer día del primer mes lunar).

la fecha =(cur año-1921)* 365+Int((cur año-1921)/4)+curDay+mes agregar(cur mes-1)-38

Si ((curYear Mod 4) = 0 y curMonth & gt2) entonces

Fecha = fecha + 1

Si... terminará

Calcular el tallos celestes del calendario lunar Ramas Terrestres Mes y Día.

isEnd = 0

m = 0

hacer

si(NongliData(m)<4095)entonces

k = 11

Otro

k = 12

Terminará si...

n = k

Hacer

Si (n & lt0) Entonces

Salir Hacer

Finalizar si...

GetNongliData( El valor del enésimo bit binario de m)

bit = NongliData(m)

Para i = 1 an paso 1

bit = Int(bit / 2)

Entonces

bit = bit Mod 2

si (la fecha & lt; = 29 + bit) entonces

isEnd = 1

Salir Do

Finalizar si...

TheDate = TheDate - 29 dígitos

n = n - 1

Timbre

Si (isEnd = 1) Entonces

Salir Do

Si... terminará

m = m + 1

Anillo

curAño = 1921 + m

curMes = k - n + 1

curDía = LaFecha

Si (k = 12) entonces

si (cur mes =(Int(NongliData(m)/65536)+1)) entonces

curMonth = 1 - curMonth

else if(cur mes & gt; (Int(NongliData(m)/65536)+1)) entonces

curMonth = curMonth - 1

Terminará si...

Terminará si...

Generar los signos zodiacales del calendario lunar = = & gtNon-lister

NongliStr = "Año Nuevo Lunar" &;天干((4年)60日)10日);DIZhi(((4年)module60)module12);"Año"

NongliStr = NongliStr & amp "(" & amp书香(((4年)Mod 60)Mod 12);")"

Generar mes y día lunar==>non-liDayStr

if(curMonth< ;1)luego

NongliDayStr = " salto " & MonName(-1 * curMonth)

Otro

NongliDayStr = MonName(curMonth)

Si...terminará

NongliDayStr = NongliDayStr & "Moon"

NongliDayStr = NongliDayStr & ampday name(curDay)NongLi = NongliStr & amp;NongliDayStrEnd function Este es el código para el mismo período del calendario lunar para calcular la función de fecha, días360.