Red de conocimientos turísticos - Pronóstico del tiempo - Use js para calcular la cantidad de días festivos más cercanos a la hora actual. Si se puede usar, se puede usar para agregar puntos.

Use js para calcular la cantidad de días festivos más cercanos a la hora actual. Si se puede usar, se puede usar para agregar puntos.

Extensión de código Js:

//Definir 24 términos solares

Calendario. sol $TERM = new array("小汉", " Frío severo ", " Comienzo de la primavera ", " Lluvia ", " Jingzhe ", " Equinoccio ", " Qingming ", " Lluvia de granos ", " Changxia ", " Xiaoman ", " "Gana", "Solsticio de verano", "Pequeño calor").

//Definir días festivos lunares

calendar . lftv = new array(" 0101 *Festival de Primavera", "0115 Festival de los Faroles", "0505 Festival del Bote del Dragón", "0707 San Valentín chino Día", "0715 Festival del Medio Otoño", "0866.

//Definir días festivos del calendario gregoriano

Calendar. sftv = new array ("0101 *Día de 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", "0448. "0504 Día de la Juventud", "0512 Día de la Enfermera", "0601 Día del Niño", "0929 Wu Xiao's Cumpleaños", "Conmemoración 0701", "Día del regreso de Hong Kong al Partido", "Día del Ejército 0801", "Día del Padre 0808", "Cumpleaños de Confucio 0928", "Día Nacional 1001*", "Día de la Tercera Edad 1006" , "1024 Día de las Naciones Unidas", "112 Cumpleaños de Sun Yat-sen", "12 de diciembre de 1998".

//Definir el objeto de fecha lunar

/*

Complete la definición del objeto de tipo fecha lunar.

Calcule el calendario lunar y devuelva el objeto de fecha lunar pasando la fecha

Las propiedades de este objeto son. . año . mes día . islap . año cyl . día moncyl

* /

Función FechaLunar(objDate) {

Variable =0, temp=0

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

var offset =(objDate-baseDate)/86400000

this . fecha obj = fecha obj;

this.dayCyl = offset + 40

this.monCyl = 14

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

temp = this .lyeardays(I);

Offset-=temperatura

this.monCyl += 12

}

if(offset & lt; 0) {

offset+= temp;

I-;

this.monCyl -= 12

}

Este año= I

este.añoCyl = i-1864

Salto = este.leapMonth(i) // ¿Cuál 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 = true

temp = estos días bisiestos (este año);

} En caso contrario {

temp = this.monthDays(this.year, I);

}

//Menciona el mes bisiesto

si(este . es salto = = verdadero && ampi==(salto+1))

this.isLeap = false

Compensación-=temperatura

if(this.isLeap == false)

this.monCyl++

}

if(offset == 0 && ampleap & gt0 & amp& ampi==salto+1)

if (this.isLeap){

this.isLeap = false

}else{

this.isLeap = true

-i;

-this moncyl;

}

if(desplazamiento <0) {

compensación+= temp;-i;

-este .moncyl;

}

este mes= i

este.día = desplazamiento + 1

}

fecha prototipo lunar . información lunar = nueva matriz(

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

0x04ae0, 05b6, 04d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0da2, 0x095b0, 0x14977,

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

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

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

0x06ca0, 0x0b550, 0x15355, 4da0, 05d 0, 0x14573, 0x052d0, 09a8, 0x0e950, 0x06aa0,

0ea6, 0b50, 0x04b60, 0ae4, 0570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0,

0x096d0, 0x04dd5, 0x04ad0, 04d0, d4, 0x0d250, 0x0d558, 0x0b540, 0x0b5a0, 0x195a6,

0x095b0, 0x049b0, 0974, 04b0, 0x0b27a, 0x06a50, 0x06d40, 0f

46, 0b60, 0x09570,

0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0b60, 0x096d5, 0x092e0,

0x0c960, 0x0d954, 0x 0d4a0, 0x0da50, 0x07552 , 0x056a0, 0bb7, 0x025d0, 0x092d0, 0x0cab5,

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

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

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

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

Fecha del calendario lunar. prototipo. animales = new array("rata", "buey", "tigre", "conejo", "dragón", "serpiente", "caballo", "oveja", "mono", "pollo", "perro", " Cerdo");

fecha lunar. prototipo. gan = nueva matriz(" A ", " B ", " C ", " D ", " E ", " Ji ", " G ", " Xin", "Ren", "Gui");

Fecha del calendario lunar. prototipo. Recta = Nueva Formación ("Zi", "Chou", "Yin", "Mao", "Chen", "Si", "Wu", "Wei", "Shen", "Tú", "Xu", " océano").

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

prototipo de fecha lunar. lyeardays = function(y){

//alert("y = " + y)

var i, sum = 348.

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

return(sum + this.leapDays(y))

}

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

fecha prototipo lunar. días bisiestos = función(y){

if(this.leapMonth(y))

return((this. información lunar). [y-1900]&0x10000)? 30: 29)

De lo contrario, regresar (0)

}

//= = =Volver al calendario lunar ¿Qué mes del año Y es 1-12? Si no hay un año bisiesto, se devuelve 0.

fecha lunar prototipo . mes bisiesto = función(y){

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

}

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

fecha prototipo lunar . mes días = función(y, m) {

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

}

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

fecha lunar prototipo. cíclico = función(){

//var num = this objdate. num = this . año-19036;

Retorno (this. Gan[num%10]+this.Chi[number%12])

}

/**Devuelve el mes en un día a la descripción china...*/

fecha lunar prototipo China date = function(){

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

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

var meslunar = este.mes

var día lunar = este.día

var s;

if(mes lunar>10){ s = ' diez '+nstr 1[calendario lunar- 10]} else { s = nstr 1[Calendario lunar]} s+=' mes '

Cambiar (día lunar) {

Caso 10: s += 'Décimo día';

Caso 20: s += 'veinte'; break;

Caso 30: s += 'treinta';

Valor predeterminado: s+= nstr 2[math . piso(día lunar/10)]; s+= nstr 1[día lunar % 10];

}

Orden de devolución

}

fecha lunar prototipo . print = function(){

var cl = ' & ltfont color = " verde " STYLE = " font-size:9pt;" & gtCalendario lunar:'; p>

//Calendario lunar BB'+(CLD [d]. "Israp", Leap':'') +cld[d]. lMes+'mes'+cld[d]. un día.

vartt = this . cyclo()+' año '+this . fecha de China();

return(cl+TT+' & lt;/font & gt;');

}

//Hereda el componente del objeto de fecha para implementar el algoritmo de fecha lunar y el algoritmo para obtener vacaciones.

fecha prototipo. getdate lunar = function(){

var d = nueva fecha(this.getFullYear(), this.getMonth(), this.getDate(), 0 , 0, 0);

Devuelve nueva fecha lunar(d);

};

fecha prototipo . /p>

var fecha lunar = this . getdate lunar();

fecha de retorno print();

};

fecha. prototipo . festival print = function(){

var objDate = new Date(this . obtener año completo(), this.getMonth(), this.getDate(), 0, 0, 0);

var objDateLunar = this. getdate lunar();

var iYear = obj date();

var iMonth = obj date. ;

var iDate = fecha obj. getdate();

var sTermInfo =nueva matriz

(0,21208,42467,63836,85337,107014, 128867,

150921,173149,195551,218072,240693,263343,

285989,308563,331033,353350,375494,397447,

419210,440795 ,462224,483532,504758)

var solarTerm = calendario . solarTerm;

var lFtv = Calendar.lFtv

var sFtv = Calendar.sFtv

var lDPOS = nueva matriz(3)

var festival= ' ', solarTerms= ' ', solarFestival= ' ', lunarFestival= ' ', tmp1, tmp2

//Año Nuevo Lunar

Para (estoy en lFtv)

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

tmp1=Número(RegExp.$1)-objDateLunar.mes

tmp2=Número(RegExp.$2)-objDateLunar.día

if(tmp 1 = = 0 & &tmp2==0) lunarFestival=RegExp. $4

}

//Festival Nacional del Calendario

Para (estoy en sFtv)

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

tmp1=Número(RegExp.$1)- (iMes+1)

tmp2=Número(RegExp.

$2)-iDate

if(tmp 1 = = 0 & &tmp2==0) solarFestival = RegExp. $4

}

//Términos

tmp1 =Nueva fecha((31556925974.7 *(iYear-1900)+sTermInfo[iMonth * 2+1]* 60000 )+Fecha UTC(1900, 0, 6, 2, 5))

tmp2 = tmp1.getUTCDate()

if(tmp 2 = = iDate)solarTerms = solarTerm[ iMonth * 2+1]

tmp1 = nueva fecha ((31556925974.7 *(iYear-1900)+sTermInfo[iMonth * 2]* 60000)+date.UTC(1900, 0, 6, 2, 5 ))

tmp2= tmp1.getUTCDate()

if(tmp 2 = = iDate)solarTerms = solarTerm[iMonth * 2]

if(solarTerms = = ' ' & amp; & ampsolarFestival = = ' ' & amp& amplunarFestival == ' ')

festival = "";

Otro

festival = ' & ltbr & gt& ltb & gtHoy es:'+término solar+' '+término solar+' '+festival lunar+' ';

var cl = ' & ltfont color = " # ff 33 ff " STYLE = " font-size:9pt;"& gt;

return(cl+festival+' & lt;/font & gt;');

};

La modificación de la función calendar.js reescribe la función Calendar.dayMouseOver.

calendario . día pasa el mouse sobre = function(ev){

var El = getelement(ev);

if (Calendar.isRelated(el, ev) || Calendario.|| el.disabled) {

Devuelve falso

}

if (el.ttip) {

if (el.ttip.substr(0, 1)= " _ " {

// -

El . ttip = El . caldate . print(El . calendar . ttdate format)+El . ttip . substr(1);

//Agregar impresión del calendario lunar..

El ttip = El ttip+" <br>;+El. . caldate . datelunar print();

//Agregar para imprimir todos los días festivos definidos por el calendario.

El .ttip = El .ttip+El .caldate print();

}

El calendario. ;

}

if (el.navtype!= 300) {

Calendar.addClass(el, " hola lite ");

if (el.caldate) {

calendar . addclass(El . nodo principal, "rowhilite");

Devolver Calendar.stopEvent(ev

Comparar números.