Cómo convertir el calendario solar al calendario lunar en ASP
ltbody gt
lenguaje ltScript = JScript Runat = Servidor gt
/****************** ************************************************** * ************
Información de fecha
********************* * ************************************************* ** *****/
var lunarInfo = nueva matriz (
0x04bd8, 0x04ae0, 0570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, p>
0x04ae0, 05b6, 04d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0da2, 0x095b0, 0x14977,
0x04970, 04b0, 0x0b4b5, 0x06a50, x06d40, 0x1ab54, 0 x02b60, 0x09570, 0x052f2 , 0x04970,
0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950,
0x0d4a0, 8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0 , 0x0d2b2, 0950, 0x0b557,
0x06ca0, 0x0b550, 0x15355, 0x04da0, 05d0, 0x14573, 0x052d0, 09a8, 0x0e950, 0x06aa0,
0ea6, 0b50, 0x04b60, 0ae4, 057 0,0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0,
0x096d0, 0x04dd5, 0x04ad0, 04d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, b5a0, 0x195a6,
0x 095b0, 0x049b0 , 0974, 04b0, 0x0b27a, 0x06a50, 0x06d40, 0f46, 0b60, 0x09570,
0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 55c0, 0b60, 0x096d5, 0x092e0,
0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0bb7, 0x025d0, 0x092d0, 0x0cab5,
0950, 0x0b4a0, 0x 0ba 4, 0d50, 5d9, 0x04ba0, 05b0, 0x15176, 0x05 2b0,0930 ,
0x07954, 0x06aa0, 0d50, 0x05b52, 0x04b60, 06e6, 04e0, 0x0d260, 0x0ea65, 0x0d530,
0x05aa0, 0x076a3, 0x096d0, bd7, 0x04ad0, 04
d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45,
0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0577, 04b0, 0a50, 0x1b255, 0x06d20, 0da 0); p>
var mes solar = new Array(31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31);
Var Gan = nuevo array (" A ", " B ", " C " , "D", "E", "ji", "geng", "fe", "humano", "fantasma");
Var Zhi = nueva formación ("子", "UG" , "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 ("Xiaohan", "Frío severo", "Comienzo de la primavera", "Lluvia", "Jingzhe", "Equinoccio de primavera", "Qingming", " Grain Rain", " "Changxia", "Xiaoman", "Eargen", "Summer Solstice", "Xiaoshu",".
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 nombreMes = new array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
//Fiestas nacionales* se refieren a días festivos.
var sFtv = new array(
"0101*Día de Año Nuevo",
"0214 Día de San Valentín",
"0303 Mi Cumpleaños",
"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 Día del Trabajo",
"0504 Día de la Juventud", p>
"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 y el día de la fundación del partido",
"0703 Cumpleaños en línea de Huang Yan",
"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",
"1220 Conmemoración del regreso de Macao",
"1225 Navidad",
"1226 Conmemoración del cumpleaños de Mao Zedong");
//Festival Lunar* indica un día festivo.
var lFtv = new array(
"0101*Festival de Primavera",
"0115 Festival de los Faroles",
"0505 Dragón Festival del Barco ",
"0707 Día de San Valentín chino",
"0715 Festival del Medio Otoño",
"0815 Festival del Medio Otoño", p>
" 0909 Doble Noveno Festival",
"1208 Festival Laba",
"1224 Xiaonian",
"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 gt0x8 i gt gt = 1)sum =(información lunar[y-1900]&i)? 1: 0;
return(suma de 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] amp; 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] amp; 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((lunar info[y-1900] amp; (0x 10000 gt; gtm))? 30: 29 ) p>
}
//= = = = = = = = = = = = = = = = = = = = = = = Devuelve el número de días de enero m de año y en el calendario gregoriano.
Función días solares(y, m) {
if(m==1){
return((y 4 == 0) amp; amp( y100! = 0) || (y400 == 0))? 29: 28);
}en caso contrario {
retorno(mes solar[m]);
}
}
// = = = = = = = = = = = = = = = = = = = = = = = para regresar a la rama principal, 0 = Jiazi.
Función de bucle (cantidad){
return(Gan[num 10] Zhi[num 12]);
}
/ /= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Calcule el calendario lunar, pase el objeto de fecha y devuelva el objeto de fecha del calendario lunar.
//Los atributos de este objeto son .año mes día islap .
Función Lunar(objDate) {
var i, salto=0, temp = 0
var baseDate = nueva fecha (1900, 0, 31) ;
var offset =(obj date-baseDate)/86400000;
este día cyl = offset 40;
this moncyl = 14; p>
p>
for(I = 1900;ilt2050 amp ampoffset gt0;i) {
temp = lYearDays(I);
offset-= temp;
este . moncyl = 12;
}
if(compensación lt; 0) {
compensación = temp;
Yo-;
este . moncyl-= 12;
}
este año = Yo;
este. . año cyl = I-1864;
salto = mes bisiesto(I); //¿Qué mes es el mes bisiesto?
this.isLeap = false
for(I = 1; i lt13.
ampoffset gt0;i) {
//Mes bisiesto
if(leap gt;0 amp ampI = =(salto 1) amp; ampthis.isLeap==false){ p >
-i;
this.isLeap = true
temp = días bisiestos(este año);
}de lo contrario{
temp = mesDías(este.año, I);
}
//Menciona el mes bisiesto
if(este . es salto = = verdadero amp; ampI = =(salto 1))este es salto =falso
offset-= temp;
si(este. es salto == falso)esto. moncyl ;
}
if(offset = = 0 amp; ampleap gt0 amp ampi==leap 1){
if (this.isLeap){
this.isLeap = false
}else{
this.isLeap = true
-i;
-este . moncyl;
}
}
if(offset lt; 0){
offset = temp;
-i;
-este . moncyl;
}
este . mes = I;
este día. = desplazamiento 1 ;
}
lt/SCRIPT gt;
lenguaje ltScript = JScript Runat = Servidor gt
//Código de prueba p>
var TT Fecha = nueva Fecha();
var tt1 =calendario lunar (fecha TT);
Respuesta. Escribir ('fecha del calendario gregoriano: ' ttdate '
Respuesta. Escribir ('Año: ' tt1.año '
Respuesta. Escribir ('Mes: ' tt1.mes ' p >
Response. Write('día:'tt1.day'
Response.Write('Desplazamiento de rama principal:'tt1.yearcyl'
Response.Write(' Desplazamiento del tronco ' tt1.yearCyl ' torso: ' ciclo(TT 1 . año cyl) ' animal [(tt1.year-4) 12. ' br gt ');
write('Año Nuevo Lunar' tt1.year 'El número total de días en un año:' ly eardays(TT 1 . Año) ' < br gt ';
Respuesta ('Año Nuevo Lunar' tt1.year '); El número de días del mes bisiesto: 'Día bisiesto (TT 1. Año)' < br gt;');
Respuesta. Escribir ('Calendario lunar' tt1.year '¿Qué mes es el año bisiesto? 'Mes bisiesto (TT 1.año)'
lt/SCRIPT gt;
lt/body gt
lt/html gt;