Simplemente completa el código en una página asp
Visita mi blog cuando no tengas nada que hacer
/superyhao
Jaja
El siguiente código comienza:
lt;
'Option Explicit
'********** * **********************************
' Nombre de la clase: ChinaDay p >
' Propósito:
' Calcular los tallos lunares y las ramas terrestres de la fecha y el signo zodiacal del año según la fecha ingresada
' Uso:
' El parámetro del Capítulo Uno es un parámetro de entrada. Si no se completa, el valor predeterminado es el día actual.
' Solo se calculan las fechas posteriores a 1921-2-8.
' ##--------- ----------------------------------## p>
' Dim objChinaDay
' Dim sDay, sWeekDay, sChinaDay, sChinaYear, sChinaAni
' Set objChinaDay = New ChinaDay
' Llamar a objChinaDay. Action("", sDay, sWeekDay, sChinaYear, sChinaDay , sChinaAni)
' Response.Write sWeekDayamp;"lt;BRgt;"
' Response.Write sWeekDayamp;"lt; BRgt;"
' Respuesta.Escribe sChinaYearamp;"lt;BRgt;"
' Respuesta.Escribe sChinaDayamp;"lt;BRgt;"
' Respuesta .Escribe sChinaAniamp;"lt;BRgt;"
p>'****************************** ****************** *************
Clase ChinaDay
Dim arrWeekName( 7), MonthAdd(11), NongliData(99)
Dim arrTianGan(9), arrDiZhi(11), arrShuXiang(11), arrDayName(30), arrMonName(12)
Dim curTime, curYear, curMonth, curDay, curWeekday
Dim i , m, n, k, isEnd, bit, TheDate
'Datos de inicialización
Sub Class_Initialize()
'--------- ------------------------------ ------------
' Definir cadena de visualización
'Nombre de la semana
arrWeekName(0) = "*" p>
arrWeekName(1) = "Domingo"
arrWeekName(2) = "Lunes"
arrWeekName(3) = "Martes"
arrWeekName(4) = "miércoles"
arrWeekName(5) = "jueves"
arrWeekName(6) = "viernes"
arrWeekName(7) = "Sábado"
'Nombre de Tiangan
arrTianGan(0) = "A"
arrTianGan(1) = "B"
arrTianGan(2) = "C"
arrTianGan(3) = "D"
arrTianGan(4) = "五"
arrTianGan(5) = "九"
arrTianGan(6) = "庚"
arrTianGan(7) = "心"
arrTianGan(8 ) = "ren"
arrTianGan(9) = "癸"
'Nombre de la rama terrestre
arrDiZhi(0) = "子" p>
arrDiZhi(1) = "Chou"
arrDiZhi(2) = "寅"
arrDiZhi(3) = "卯"
arrDiZhi(4 ) = "陈"
arrDiZhi(5) = "巳"
arrDiZhi(6) = "Wu"
arrDiZhi(7) = "Wei"
arrDiZhi(8) = "Shen"
arrDiZhi(9) = "酉"
arrDiZhi(10) = "戌" p>
arrDiZhi(11) = "海"
'Nombre del zodiaco
arrShuXiang(0) = "Rata"
arrShuXiang(1) = "Vaca"
arrShuXiang(2) = "Tigre"
arrShuXiang(3) = "Conejo"
arrShuXiang(4) = "Dragón" p>
arrShuXiang(5) = "Serpiente"
arrShuXiang(6) = "Caballo"
arrShuXiang(7) = "Oveja"
arrShuXiang(8 ) = "Mono"
arrShuXiang(9) = "Pollo"
arrShuXiang(10) = "Perro"
arrShuXiang(11) = "Cerdo"
'Nombre de la fecha del calendario lunar
arrDayName(0) = "*"
arrDayName(1) = "Día de Año Nuevo"
arrDayName (2) = "Segundo día de escuela secundaria"
arrDayName(3) = "Tercer día de escuela secundaria"
arrDayName(4) = " Cuarto día de la escuela secundaria"
arrDayName(5 ) = "El quinto día del mes lunar"
arrDayName(6) = "El sexto día del mes lunar"
arrDayName(7) = "El séptimo día del mes lunar"
arrDayName(8) = "Octavo día"
arrDay
Name(9) = "El noveno día del mes lunar"
arrDayName(10) = "El décimo día del mes lunar"
arrDayName(11) = "El undécimo día"
arrDayName( 12) = "Doce"
arrDayName(13) = "Trece"
arrDayName(14) = "Catorce"
arrDayName(15) = "Quince"
arrDayName(16) = "Dieciséis"
arrDayName(17) = "Diecisiete"
arrDayName (18) = " Dieciocho"
arrDayName(19) = "Diecinueve"
arrDayName(20) = "Veinte"
arrDayName(21) = " Veintiuno "
arrDayName(22) = "Veintidós"
arrDayName(23) = "Veintitrés"
arrDayName(24) = "Veinticuatro"
arrDayName(25) = "Veinticinco"
arrDayName(26) = "Veintiséis"
arrDayName(27) = "Veintisiete"
arrDayName(28) = "Veintiocho"
arrDayName(29) = "Veintinueve"
arrDayName(30 ) = "Treinta"
'Nombre del mes lunar
arrMonName(0) = "*"
arrMonName(1) = "positivo"
arrMonName(2) = "二"
arrMonName(3) = "tres"
arrMonName(4) = "cuatro"
arrMonName( 5) = "cinco"
arrMonName(6) = "Seis"
arrMonName(7) = "Siete"
arrMonName(8) = "Ocho "
arrMonName( 9) = "Nueve"
arrMonName(10) = "Diez"
arrMonName(11) = "Once"
arrMonName(12) = " cera"
'------------------------------- --------- ------------------
'Definición de datos de tolerancia
'El número de días antes de cada mes en el calendario gregoriano
MonthAdd (0) = 0
MonthAdd(1) = 31
MonthAdd(2) = 59
AgregarMes(3) = 90
AgregarMes(4) = 120
AgregarMes(5) = 151
AgregarMes(6) = 181 p>
AñadirMes(7) = 212
AñadirMes(8) = 243
AñadirMes(9) = 273
AnuncioMes
d(10) = 304
MonthAdd(11) = 334
'Datos del calendario lunar
NongliData(0) = 2635
NongliData (1) = 333387
NongliData(2) = 1701
NongliData(3) = 1748
NongliData(4) = 267701
NongliData(5) = 694
NongliData(6) = 2391
NongliData(7) = 133423
NongliData(8) = 1175
NongliData(9) = 396438
NongliData(10) = 3402
NongliData(11) = 3749
NongliData(12) = 331177< / p>
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
NongliData(33) = 2651
NongliData(34) = 199255
NongliData(35) = 1323 p >
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 p>
NongliData(79) = 3222
NongliData(80) = 268949
NongliData(81) = 3402
NongliData(82) = 3493
NongliData(83) = 133973
NongliData(84) = 1386
NongliData(85) = 464219
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
End Sub
'## ################################################ ## ######
'Método principal Acción
' inDay Ingrese la fecha; si no se ingresa, el valor predeterminado será la fecha actual
' sDay Chino formato Fecha
' sWeekDay Día de la semana
' sChinaYear Año lunar
' sChinaDay Día lunar
' sChinaAni Signo del zodíaco p>
'############################################ ## ############
Acción de función pública (inDay, sDay, sWeekDay, sChinaYear, sChinaDay, sChinaAni)
'Convierte la fecha para que convertido
p>Si inDay="" O no esDate(inDay) Entonces
'Obtiene la hora actual del sistema
curTime = Now()
Else
curTime = CDate(inDay)
End If
If Datediff("d", curTime, Cdate("1921-2- 8"))gt; 0 Then
Salir de la función
End If
'Generar el año, mes y día actual del calendario gregoriano==gt; sDay
curYear = Año(curTime)
curMonth = Mes(curTime)
curDay = Día(curTime)
sDay = curYearamp; "Año"
If (curMonth lt; 10) Then
sDay = sDayamp "0"amp; curMonthamp; >
sDay = sDayamp; curMonthamp ; "mes"
Fin si
Si (curDay lt; 10) Entonces
sDay = sDayamp; "amp; curDayamp; "día"
Else
sDay = sDayamp; curDayamp;"
Day"
End If
'Generar el calendario gregoriano actual semana==gt; sWeekDay
curWeekday = Weekday(curTime)
sWeekDay = arrWeekName(curWeekday)
'Calcula el número de días hasta la hora inicial del 8 de febrero de 1921: 1921-2-8 (el primer día del primer mes lunar)
TheDate = (curYear - 1921) * 365 Int((curYear - 1921) / 4) curDay MonthAdd(curMonth - 1) - 38
If ((curYear Mod 4) = 0 AND curMonth gt; 2 ) Then
TheDate = TheDate 1
End If
'Calcula los tallos del calendario lunar, las ramas terrestres, los meses y los días
isEnd = 0
m = 0
'-------------------------------- -------
Hacer
Si (NongliData(m) lt; 4095) Entonces
k = 11
De lo contrario
k = 12 p>
Finalizar si
n = k
'------------ ------------ -----------
Hacer
Si (n lt; 0) Entonces
Salir Do
End If
'Obtiene el valor del enésimo bit binario de NongliData(m)
bit = NongliData(m) p>
Para i = 1 To n Paso 1
bit = Int(bit/2)
Siguiente
bit = bit Mod 2 p>
Si (TheDate lt; = 29 bit) Entonces
isEnd = 1
Salir Do
Finalizar si
TheDate = TheDate - 29 - bit
n = n - 1
Bucle
'--------------- ----------- ---------
Si (isEnd = 1) Entonces
Salir Do
Fin si
m = m 1
Bucle
'--------------------- ----------- ----
curYear = 1921 m
curMonth = k - n 1
curDay = TheDate
Si (k = 12 ) Entonces
Si (curMont
h = (Int(NongliData(m) / 65536) 1)) Entonces
curMonth = 1 - curMonth
ElseIf (curMonth gt; (Int(NongliData(m) / 65536) 1)) Entonces
curMonth = curMonth - 1
End if
End If
'Generar calendario lunar tallos celestes y ramas terrestres ==gt ; sChinaYear
sChinaYear = "Calendario Lunar"amp; arrTianGan(((curYear - 4) Mod 60) Mod 10)amp; amp; "Año "
'Generar signo del zodíaco == gt; sChinaAni
sChinaAni = arrShuXiang(((curYear - 4) Mod 60) Mod 12)
'Generar mes lunar, día==gt; NongliDayStr
If (curMonth lt; 1) Then
sChinaDay = "Leap" amp arrMonName(-1 * curMonth) p>
Else
sChinaDay = arrMonName(curMonth)
End If
sChinaDay = sChinaDayamp "mes"
sChinaDay = sChinaDay amp; arrDayName (curDay)
Función final
Clase final
gt; >Dim objChinaDay
p>
Dim sDay, sWeekDay, sChinaDay, sChinaYear, sChinaAni
Establecer objChinaDay = New ChinaDay
Llamar a objChinaDay.Action(solicitud) ("datos"), sDay, sWeekDay, sChinaYear, sChinaDay, sChinaAni)
Establecer objChinaDay = Nothing
'Response.Write sDayamp;"lt;BRgt;"
'Response.Write sWeekDayamp;" lt;BRgt;"
'Response.Write sChinaYearamp;"lt;BRgt;"
'Response.Write sChinaDayamp;"lt; BRgt;"
'Respuesta.Escribir sChinaAniamp;"lt;BRgt;"
gt;
lt;htmlgt;
lt ;headgt;
lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"gt;
> lt;titlegt;Calendario Lunarlt;/titlegt;
lt;stylegt;
.itm {font-family: 宋体; font-size: 14px;}
.chn {familia de fuentes: 宋体; tamaño de fuente: 12px}
.chnred {familia de fuentes: 宋体; color: #FF0000; tamaño de fuente: 12px}
< p; > .chnblue {familia de fuentes: 宋体; color: #0000FF; tamaño de fuente: 12px}lt;/stylegt;
lt;/headgt;
lt;body bgcolor="#FFFFFF"gt;
lt;!--Mostrar calendario del sitio--gt;
lt;=sDaygt;?lt;=sWeekDaygt ; ?lt;=sChinaYear amp; "(" amp; sChinaAni amp; ")"gt;?lt;=sChinaDaygt;
lt;form action="?" p>
Ingrese la fecha: lt; input type="text" name="data"gt; font color="#FF0000"gt; p >
lt;br/gt;
lt;input type="submit" value="submit"gt;
lt;/formgt;
lt;/bodygt;
lt;/htmlgt;