Red de conocimientos turísticos - Preguntas y respuestas turísticas - Necesitamos urgentemente el "Código JAVA del Calendario Lunar"

Necesitamos urgentemente el "Código JAVA del Calendario Lunar"

/personal/Wen Yuxuan/Yan/yantime 011 .htm

(Simplemente copie el código en una nueva página web en blanco, no mire la demostración, el código en la demostración es incorrecto.

)

El código es el siguiente:

& ltLenguaje script = JavaScript & gt

& lt! -

/****************************************** ************************************

Información de la fecha

************************************************ *****************************/

var lunarInfo =nueva matriz(

0x04bd8, 0x04ae0, 0570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2,

0x04ae0, 05b6, 04d0, 0x0d250, x1d255, 0x0b540, 0x0d6a0, 0da2, 0x095b0, 0x14977, < /p >

0x04970, 04b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970,

0x06566, 0x0d4a0, 0x0ea50, x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7 , 0x0c950 ,

0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0950, 0x0b557,

0x06ca0, 50, 0x15355, 0x04da0, 0 5d0, 0x14573, 0x052d0, 09a8 0x0e950, 0x0d4d4, 0x0d250 0x0d558 x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0b60, 0x096d5, 0,

0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0bb7, 0x025d0, 0x092d0, 0x0ca b5,

0950, 0x0b4a0 , 0x 0ba 4, 0d50, 0x055d9, 0x04ba0, 05b0, 0x15176, 0x052b0, 0930,

0x07954, 0x06aa0, 0d50, 0x05b52, 0x04b60 , 06e6, 04e0, 0x0d260, 0x0ea6 5,0x0d530,

0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 04d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45,

0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0577, 0 4b0, 0a50, 0x1b255, 0x06d20, 0da0)

var mes solar

= nueva Matriz(31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31);

Var Gan = nueva matriz (" A ", " B ", " C); "," D ", " E ", "ji", "庚", "信", "人", "鬼");

Var Zhi = Nueva Formación ("子", "Chou " ", "Yin", "Mao", "Chen", "Si", "Wu", "Wei", "Shen", "Tú", "Xu", "Hai");

Var Animales = new array("Rata", "Buey", "Tigre", "Conejo", "Dragón", "Serpiente", "Caballo", "Oveja", "Mono", "Pollo", "Perro" , "Cerdo");

Var solarTerm = Nueva Formación ("Pequeño Frío", "Frío Severo", "Comienzo de la Primavera", "Lluvia", "Jingzhe", "Equinoccio de Primavera", "Qingming ", "Lluvia de granos", "Changxia", "Xiaoman", "Grano", "Solsticio de verano", "Pequeño calor",.

var sTermInfo = new Array(0, 21208, 42467, 63836, 85337, 107014, 128867 , 150921, 173149, 1955565438

Var nStr1 = nueva matriz ('día', 'uno', 'dos', 'tres', 'cuatro', 'cinco', 'seis', 'siete', 'ocho', 'nueve', 'diez').

Var nStr2 = nueva matriz ('temprano', 'diez', '20', '30', '')

var mesNombre = new array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", " Septiembre ", "Octubre", "Noviembre", "Diciembre");

//Fiestas nacionales* se refiere a días festivos.

var sFtv = new array(

"0101*Año Nuevo",

"0214 Día de San Valentín",

"0308 Día de la Mujer",

"0312 Día del Árbol",

"0315 Día de los Derechos del Consumidor",

"0317 San Patricio",

"0401 Día de los Inocentes",

"0501 Trabajo Day",

"0504 Día de la Juventud",

"0512 Día de la Enfermera",

"0512 Cumpleaños de Yin",

" 0601 Día del Niño",

"0614 Día de la Bandera",

"0701 Conmemoración del regreso de Hong Kong al Partido y Día de la Fundación",

"0703 Huang Yan Cumpleaños en línea",

"0718 Cumpleaños de Top",

"0801 Día del Ejército",

"0808 Día del padre",

"0909 Salón Conmemorativo de la Muerte de Mao Zedong",

"0910 Día del Maestro",

"0928 Cumpleaños de Confucio",

"1001*Día Nacional",

"1006 Día de las Personas Mayores",

"1024 Día de las Naciones Unidas",

"1111 Día de los Veteranos/Memorial",

"1112 Conmemoración del cumpleaños de Sun Yat-sen",

"Conmemoración del regreso de Macao 1220",

"Navidad 1225",

"Conmemoración del cumpleaños 1226 de Mao Zedong")

//Festival Lunar* indica días festivos.

var lFtv = new array(

"0101*Festival de Primavera",

"0115 Festival de los Faroles",

"0328mi cumpleaños ",

"0505 Festival del Bote del Dragón",

"0707 Día de San Valentín chino",

"0715 Festival del Medio Otoño",

"0815 Festival del Medio Otoño",

"0909 Doble Noveno Festival",

"1208 Festival de Laba",

"1224 Pequeño Año Nuevo" ,

" 0100*Nochevieja")

//¿Qué día de la semana es en un mes?

var wFtv = new array(

"0131 Día de Martin Luther King",

"0231 Día del Presidente",

"0520 Día de la Madre",

"0530 Día de las Fuerzas Armadas",

"0531 Día de la Victoria",

"0716 Día de la Cooperación",

"0730 Semana de las Naciones Esclavizadas",

"0811 Feriado Ciudadano",

"0911 Feriado del Trabajo",

"1021 Día de la Raza",

"1144 Acción de Gracias")

/****************************** ***** *****************************************

Cálculo de fecha

************************************ ***** ************************************/

/ /= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Devuelve el número total de días del año calendario lunar Y.

Tiempo de retardo de función (y) {

var i, sum = 348

for(I = 0x 8000;i>0x8i>>= 1 )sum+=(información lunar [y-1900]&i)? 1: 0

retorno(suma+Días bisiestos(y))

}

//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Devuelve el número de días del mes bisiesto del año y en el calendario lunar.

Función días bisiestos(y) {

if(mes bisiesto(y))return((info lunar[y-1900]&0x10000)?30:29)

De lo contrario, devuelve (0)

}

//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = Devuelve el mes de Y en el año bisiesto del calendario lunar, es decir, 1-12, o 0 si no hay año bisiesto.

Función messalto(y) {

retorno(información lunar[y-1900]&0xf)

}

/ / = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Devuelve el número total de días en M meses del año y en el calendario lunar .

Función número de días en el mes (y, m) {

return((información lunar[y-1900]&(0x 10000>>m))? 30: 29 )

}

//= = = = = = = = = = = = = = = = = = = = = = = = = = = = Calcular el calendario lunar, pase el objeto de fecha y devuelva el objeto de fecha lunar.

//Los atributos de este objeto son .año mes día islap .

Función Lunar(objDate) {

Variable I, salto=0, temp=0

var fecha base = nueva fecha (1900, 0, 31)

var offset =(objDate-baseDate)/86400000

this.dayCyl = offset + 40

this.monCyl = 14

for(I = 1900;i<2050&&offset>0;i++) {

temp = lYearDays(i)

offset-=temperatura

this.monCyl += 12

}

if(desplazamiento & lt; 0) {

desplazamiento+= temp;

I- ;

this.monCyl -= 12

}

Este año=i

this.yearCyl = i-1864

Salto = messalto( i) //¿Qué mes es el mes bisiesto?

this.isLeap = false

for(I = 1;i<13.

& ampoffset & gt0;i++) {

//Mes bisiesto

if(leap & gt;0 & amp& ampI = =(leap+1)& amp;& ampthis.isLeap = =false)

{ -i;this.isLeap = truetemp = días bisiestos(este . año);}

Otro

{ temp = MonthDays( este año, i);}

//Mencione el mes bisiesto

if(este. es salto = = verdadero &&I = =(salto+1))esto. es salto = false

Compensación-=temperatura

si(este. es salto == false)this moncyl++

}

. if( offset = = 0 & ampleap & gt0 & ampi==leap+1)

if (this.isLeap)

{ this.isLeap = false}

Otro

{ this.isLeap = true-i;-this .

if(offset & lt;0){ offset+= temp;-i; .moncyl;}

Este mes=yo

este.día = compensación + 1

}

//= = = = = = = = = = = = = = = = = = = = = = = = = = = = El número de días en un mes m+1 en el año calendario y.

Función solarDays(y, m) {

Si (m==1)

return((y % 4 == 0)&& amp (y%100!= 0) || (y%400 == 0))? 29: 28)

Otros

return(solarMonth[m])

}

//= = = = = = = = = = = = = = = = = = = = = = = = = = = Pase el desplazamiento para regresar a la rama principal, 0 = Jiazi.

Función de bucle (cantidad){

retorno(gan [num % 10] + sabiduría [num% 12])

}

//= = = = = = = = = = = = = = = = = = = = = = = Propiedades del calendario

Función calElement(año, mes, día, semana, año, mes, día, mes, día, año, año, mes, día){

this.isToday = false

//Calendario Nacional

this.sYear = sAño

este . sm onth = sm onth;

este.sDía = sDía

esta.semana =semana;

/ /lunar calendario

este .l oído = ly oído;

este.lMes = lMes

este.lDía = lDía

este es. salto = es salto;

//Rama principal

this cy ear = cy ear;

this.cMonth = cMonth

. this.cDay = cDay

this .color = "";

this . festival lunar = ""; // Año nuevo chino

this . ""; //Festival del Calendario Nacional

this . solarterms = ""; //Términos Solares

}

//= = = = El primer día. de un año determinado ¿Cuántos días hay en n términos solares (a partir de 0 Xiaohan)?

Función sTerm(y, n) {

var offDate = nueva fecha ((31556925974.7 *(y-1900)+sTermInfo[n]* 60000)+date.UTC(1900 , 0, 6, 2, 5))

return(offDate.getUTCDate())

}

//= = = = = = = = = = = = = = = = = = = = Devuelve un objeto de calendario (y año, m+1 mes).

Calendario de funciones (y, m) {

var sDObj, lDObj, lY, lM, lD=1, lL, lX=0, tmp1, tmp2

var lDPOS = nueva matriz(3)

var n = 0

var firstLM = 0

SDObj = nueva Fecha(y, m, 1) / /El día del mes actual.

This.length = solarDays(y, m) //El número de días del mes actual en el calendario nacional.

this . firstweek = SD obj . getday()//¿Qué día es el 1 en el calendario nacional?

for(var I = 0;i<this.length;i++) {

if(lD>lX) {

SDObj = nueva Fecha (y, m , i+1) //La fecha del mes actual.

LDObj = new Lunar(sDObj) //Calendario lunar

LY = lDObj.year //Año Nuevo Lunar

LM = lDObj.month //Lunar mes calendario

LD = lDObj.day //Día del calendario lunar

LL = lDObj.isLeap //¿Es el calendario lunar un mes bisiesto?

lX = lL? Día bisiesto (ly): día del mes (ly, lm) //El último día del mes lunar.

if(n==0) firstLM = lM

lDPOS[n++] = i-lD+1

}

/ /Año, mes, día, semana,

//lAño, lMes, lDía, esSalto,

//cAño, cMes, cDía

esto[i ] = new calElement(y, m+1, i+1, nstr 1[(I+esta . primera semana)% 7),

lY, lM, lD++, lL,

circular(ldobj . año cyl), circular(ldobj . moncyl), circular(ldobj . día cyl++))

if ((i+this.firstweek)% 7 == 0) this [I ]. color =' rojo'/color del domingo

if ((i+this.firstweek)% 14 == 13)this[i]. Dos días libres el fin de semana.

}

//Términos

tmp1=sTérmino(y, m*2)-1

tmp2=sTérmino(y, m*2+1)-1

Este [tmp1]. solarTerms = solarTerm[m*2]

Este[tmp2]. solarTerms = solarTerm[m * 2+1]

Si (m = = 3) este [tmp1]. color = 'rojo'/color Qingming.

//Festival Nacional del Calendario

Para (estoy en sFtv)

if(sFtv[i].match(/^(\d{2} ) (\d{2})([\s\*])(.+)$/))

if(Número(RegExp.$1)==(m+1)) {

Este [número(RegExp.$2)-1].solarFestival += RegExp. $4 + ' '

if(RegExp.$3=='* ')this[número(RegExp.$2)-1].color = 'rojo '

}

//Vacaciones mensuales y semanales

Para (estoy en wFtv)

if(wFtv[i].match(/^(\d{2})( \ d)(\d)([\s\*])(.+)$/))

if(Número(RegExp.$1)==(m+1)) {

tmp1=Número(RegExp.$2)

tmp2=Número(RegExp.$3)

Esta es la primera semana. tmp2)? 7:0)+7 *(tmp 1-1)+tmp 2-esta primera semana]. solarFestival += RegExp. $5 + ' '

}

//Año Nuevo Lunar

Para (estoy en lFtv)

if(lFtv[i ]. coincidencia(/^(\d{2})(.{2})([\s\*])(.+)$/)) {

tmp1=Número(RegExp.

$ 1)-Primer LM

if(tmp 1 = =-11)tmp 1 = 1

if(tmp 1 & gt; = 0 & amp& amptmp 1 & lt ;n ) {

tmp 2 = lDPOS[tmp 1]+Número(RegExp.$2) -1

if(tmp 2 & gt;= 0 & amp& amptmp2 & ltthis . longitud) }

Este [tmp2]. festivallunar += RegExp. $4 + ' '

if(RegExp.$3=='* ')este[tmp2]. color = 'rojo '

}

}

}

//Viernes Negro

if(( esta primera semana+12)% 7 = = 5)

Esto[12]. solarFestival += 'Black Friday'

//Hoy

if(y = = tY &&m==tM)esto[tD-1]. isToday = true

}

//= = = = = = = = = = = = Fecha china

Función cDay(d){

var s;

switch(d) {

Caso 10:

S = 'Día 10 de descanso';

Caso 20:

S = 'veinte';

descanso

Caso 30:

S = 'Treinta'; '; romper;

break;

Valor predeterminado:

s = nstr 2[math . p>s+= nstr 1[d % 10];

}

Orden de devolución;

}

/ //// /////////////////////////////////////////////////// /////////////////////////////

var cld

Función drawCld(SY, SM ) {

var i, sD, s, size

cld = nuevo calendario(SY, SM);

if(SY>1874.& ampSY & lt1909) yDisplay = 'Guangxu'+((SY-1874) = = 1)? Yuan:SY-1874)

if(SY>1908.&SY<1912) yDisplay = 'Xuantong'+((SY-1908) = = 1)? 'Yuan':SY-1908)

if(SY>1911.

& ampSY & lt1950) yDisplay = 'República de China'+(((SY-1911)= = 1)?'Yuan':SY-1911)

//if(SY & gt;1949) y Show=' * *y China'+((SY-1949) = = 1)? Yuan:SY-1949)

// GZ.innerHTML = yDisplay+'calendario lunar'+ciclo (SY-19036)+'año? '+animal[(SY-4)% 12]+' ';

if(SY>1949) yDisplay = ' '

GZ.innerHTML = yDisplay+'Calendario lunar' + bucle(SY-19036)+'¿Año? '+animal[(SY-4)% 12]+' ';

YMBG.innerHTML = "?+SY+" & lt;BR & gt?"+nombre del mes[SM];

for(I = 0;i<42;i++) {

sObj = eval(' ​​​​SD '+I);

lObj = eval(' ​​​​LD '+ I);

sobj . nombre de clase = "";

sD = I-CLD primera semana;

if(sD & gt; - 1 & amp; ampsD & ltCld.length) {//Dentro de la fecha

sobj = sD+1;

if(cld[sD]). = ' todyaColor '; //Color de hoy

sObj.style.color = cld[sD]. //Color del feriado nacional

If(cld[sD ]). ==1) //Muestra el mes lunar

lObj.innerHTML = ' & ltb & gt'+(cld[sD].isLeap?leap ':')+CLD[sD] lMonth+'. Mes '+(días del mes(CLD[SD]).Lyle,CLD.LMONTH) == 29? pequeño':'grande')+'

Else //Mostrar el Año Nuevo Lunar

lObj.innerHTML = cDay(cld[sD]).

s = CLD[SD]. lunarFestival

if(s . length & gt ;0) {// Festival Lunar

if(s . length & gt;6) s = s.substr(0, 4)+'...';

s = s . ' rojo ');

}

Else {//Fiesta Nacional

s = CLD[SD].

if(s . longitud & gt 0) {

tamaño = (s.charCodeAt(0)>0 & amp& amps . charcodeat(0)<128)?8:4; longitud & gt; tamaño+2) s = s.substr(0, tamaño)+'...';

s = s . >}

Else {// 24 términos solares

s = CLD[SD].

solarTerms

if(s . length & gt; 0)s = s . color de fuente(' verde lima '); >

if(s . length & gt; 0)lobj . internalhtml = s

}

Else {//sin fecha

sobj .innerhtml = "";

lobj. > Función cambioLong()

{

Variables y, m, ly, lm, id, im, iy, yangy, yangm, deltm, miny, TT;

CLD. CLD. d 1. índice seleccionado;

CLD. CLD. D2.selectedIndex

yangm = 0; yangy = 0;

TT = verdadero

mientras (tt)

{

yangm = 0; yangy = 0;

cambiar CLD();

for(I = 0;i<42;i++)

{

sD = I-CLD primera semana;

if(sD & gt;-1 & ampsD & ltcld .length)

dentro de {//fecha.

if ((cld[sD]).cld.D2.selectedindex+1)&&(cld[sD].lier==CLD.d1. selectedindex+1900))

{

Yang=CLD. índice seleccionado+1900; Yang=CLD. SM.selectedIndex

TT = falso

Romper

}

}

}

Si (!tt) se abre paso;

push TM(' MD ');

cambiar CLD();

//Alert ( CLD . SY.selectedIndex+" "+CLD .

for(I = 0;i<42;i++)

{

sD = I. -CLD . primera semana;

if(sD>-1&&sD<cld.length)

Dentro de {//fecha

if ((cld[sD] ).cld.D2.selectedindex+1)&&&(cld[sD].Lyle==CLD.d1.selectedindex+1900))

{

Yang=CLD. índice seleccionado+1900; Yang=CLD. SM.selectedIndex

TT = falso

Romper

}

}

}

Descanso;

}

//alert(yangy+" "+yangm);

//CLD. SY.selectedIndex = yangy//-1900;

//push TM(' YU ');

//push TM(' YD ');

CLD.

SM.selectedIndex = yangm

push TM(' MD ');

push TM(' MU ');

}

//cambioLong end

Función changeCld() {

var y, m;

y=CLD. sy.selectedindex+1900;

m=CLD. SM.selectedIndex

drawCld(y, m);

}

Función push TM(K){

Interruptor (K) {

Cuadrícula 'en':

if (CLD. SY.selectedIndex & gt0) CLD. sy.selectedindex-;

Pausa;

Caso "YD":

if (CLD.SY.selectedIndex<149) CLDsy.selectedindex++;

Pausa;

Caso "Gestión":

if (CLD. SM.selectedIndex & gt0) {

CLD. sm .selectedindex-;

}

else {

CLD. sm . índice seleccionado = 11;

if (CLD . SY . índice seleccionado & gt0 ) CLD . sy.selectedindex-;

}

Pausa;

Caso "MD":

if (cld.sm.selectedIndex<11 ) {

CLD. sm .selectedindex++;

}

else {

CLD. sm.selectedindex = 0;

if (CLD.SY.selectedIndex & lt149) CLDsy.selectedindex++;

}

Romper;

Predeterminado:

CLD. sy.selectedindex = tY-1900;

CLD.

SM.selectedIndex = tM

}

cambiar CLD();

}

var Hoy = nueva fecha();

p>

var tY = hoy . obtener año completo();

var tM = hoy getmonth();

var tD = hoy . ();

p>

//////////////////////////////////// ///////////// ////////////////////////////////////

var ancho = " 130 ";

var offsetx = 2;

var off sety = 16;

var x = 0;

var y = 0;

var nieve = 0;

var SW = 0;

var CNT = 0;

var dStyle

document.onmousemove = mEvn

//Mostrar información detallada de la fecha

Función mOvr(v) {

var s, feriado;

var sObj = eval(' ​​​​SD '+v);

var d = sobj . //Año, mes, día, semana,

//lAño, lMes, lDía, esSalto,

//cAño, cMes, cDía

if( sObj.innerHTML!='') {

estilo sobj . cursor = ' s-resize ';

if(cld[d]. solarTerms = = ' ' & amp& ampcld [d]. solarFestival = = ' ' & amp& ampcld[d]. lunarFestival == ' ')

festival = "";

Otro

festival. = ' & ancho de tabla = 100% BORDE = 0 relleno de celda = espaciado de 2 celdas = 0 BGCOLOR = " # CCFFCC " & gt;cld[d]. términos solares + ' ' + cld[d]. solarFestival + ' ' + cld[d].

festival lunar+'</FONT></TD>+

</TR></TABLE>'

s = ' & ltTABLE WIDTH = " 130 " BORDER = 0 celda padding = " 2 " espaciado de celda = 0 BGCOLOR = " # 000066 " >& ltTR & gt& lt"TD & gt" +

& ltAncho de tabla = 100% BORDE = 0 Relleno de celda = 0 Espaciado de celda = 0 >& ltTR & gt& ltTD ALIGN="right " >& ltFONT COLOR = " # ffffff " STYLE = " FONT-size:9pt;"& gt+

Cld[d]. sAño+'año'+cld[d]. sMes+'mes'+cld[d]. sDía+'Día < br & gt Semana'+CLD [d]. Día laborable+'

& ltfont color="violet " >Calendario lunar'+(CLD [d]. islap? Leap':'') +cld[d]. lMes+'mes'+cld[d]. lDía+' día +cld[d]. cAño+'Año'+cld[d]. cMes+'Mes'+cld[d]. cDía+'día

& ltTABLE width = " 672 " align = " right " height = " 259 " bordercolordark = " # cc 9900 " border = " 4 " background = " l 11 . gif " & gt;

& ltcenter>

& ltcenter>

& ltTBODY>

& lt/center>& lt/center & gt;

& ltTR & gt

& ltTD align = middle vAlign = top width = " 170 " height = " 255 " >>p>

& ltdiv align="center " >> p>

& ltcenter& gt

& lttable border = 1 COLSPAN = 2 ancho = " 221 " />

& ltcenter& gt

& ltcenter& gt& ltfont size=2

style="FONT-SIZE: 9pt " >>p>

& lttd width=" 209 "

& ltp align="center " > & ltfont style = " tamaño de fuente: 10,8 pt " color = ROJO & gt.

Hora de la computadora local:

id=Tamaño del reloj=3 align="center " >& lt/FONT & gt;

& ltP & gt& lt! - Zona horaria * indica ajuste automático al horario de verano - /TABLE & gt;

& lt/center & gt;

& lt/div & gt;

& ltdiv align="center " >> p>

& ltcenter& gt

& lttable border= 1 altura = " 1 " ancho = " 16 "

& lttd height="1" width= "255 " >>p>

& lttable width = " 212 " height = " 1 " >& ltcenter& gt

& ltcenter& gt

& ltFONT id=tSave

style="COLOR: rojo; familia de fuentes: fuente Wingdings