'); document.getElementById("btop").innerHTML='
'; } //==== 传入 offset 传回干支, 0=甲子 function cyclical(num) { return(Gan[num%10]+Zhi[num%12])} //==== 传回农历 y年的总天数 function lYearDays(y) { var i, sum = 348 for(i=0x8000; i>0x8; i>>=1) sum += (lunarInfo[y-1900] & i)? 1: 0 return(sum+leapDays(y)) } //==== 传回农历 y年闰月的天数 function leapDays(y) { if(leapMonth(y)) return((lunarInfo[y-1900] & 0x10000)? 30: 29) else return(0) } //==== 传回农历 y年闰哪个月 1-12 , 没闰传回 0 function leapMonth(y) { return(lunarInfo[y-1900] & 0xf)} //====================================== 传回农历 y年m月的总天数 function monthDays(y,m) { return( (lunarInfo[y-1900] & (0x10000>>m))? 30: 29 )} //==== 算出农历, 传入日期物件, 传回农历日期物件 // 该物件属性有 .year .month .day .isLeap .yearCyl .dayCyl .monCyl function Lunar(objDate) { var i, leap=0, temp=0 var baseDate = new Date(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 -= temp this.monCyl += 12 } if(offset<0) { offset += temp; i--; this.monCyl -= 12 } this.year = i this.yearCyl = i-1864 leap = leapMonth(i) //闰哪个月 this.isLeap = false for(i=1; i<13 && offset>0; i++) { //闰月 if(leap>0 && i==(leap+1) && this.isLeap==false) { --i; this.isLeap = true; temp = leapDays(this.year); } else { temp = monthDays(this.year, i); } //解除闰月 if(this.isLeap==true && i==(leap+1)) this.isLeap = false offset -= temp if(this.isLeap == false) this.monCyl ++ } if(offset==0 && leap>0 && i==leap+1) if(this.isLeap) { this.isLeap = false; } else { this.isLeap = true; --i; --this.monCyl;} if(offset<0){ offset += temp; --i; --this.monCyl; } this.month = i this.day = offset + 1 } function YYMMDD(){ var today=new Date(); intHours = today.getHours(); intMinutes = today.getMinutes(); intSeconds = today.getSeconds(); if (intHours == 0) { xfile = "午夜"; } else if (intHours < 12) { xfile = "上午"; } else if (intHours == 12) { xfile = "正午"; } else { xfile = "下午"; } if (intHours < 10) { hours = "0"+intHours+":"; } else { hours = intHours+":"; } if (intMinutes < 10) { minutes = "0"+intMinutes+":"; } else { minutes = intMinutes+":"; } if (intSeconds < 10) { seconds = "0"+intSeconds+" "; } else { seconds = intSeconds+" "; } return(SY+'年'+(SM+1)+'月'+SD+'日'+ xfile + hours + minutes + seconds); } function weekday(){ var y=new Array("鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"); var day = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六"); if (SY >= 0 && SY < 70) SY = 2000 + SY; //以70年为界 if (SY >= 70 && SY<100) SY = 1900 + SY; //处理两位数的年份 return(day[SW]+ ' '+ y[(SY-4)%12] + '年'); } function DaysNumberofDate(DateGL){ return parseInt((Date.parse(DateGL)-Date.parse(DateGL.getFullYear()+"/1/1"))/86400000)+1; } function CnDateofDate(DateGL){ var CnData=new Array( 0x16,0x2a,0xda,0x00,0x83,0x49,0xb6,0x05,0x0e,0x64,0xbb,0x00,0x19,0xb2,0x5b,0x00, 0x87,0x6a,0x57,0x04,0x12,0x75,0x2b,0x00,0x1d,0xb6,0x95,0x00,0x8a,0xad,0x55,0x02, 0x15,0x55,0xaa,0x00,0x82,0x55,0x6c,0x07,0x0d,0xc9,0x76,0x00,0x17,0x64,0xb7,0x00, 0x86,0xe4,0xae,0x05,0x11,0xea,0x56,0x00,0x1b,0x6d,0x2a,0x00,0x88,0x5a,0xaa,0x04, 0x14,0xad,0x55,0x00,0x81,0xaa,0xd5,0x09,0x0b,0x52,0xea,0x00,0x16,0xa9,0x6d,0x00, 0x84,0xa9,0x5d,0x06,0x0f,0xd4,0xae,0x00,0x1a,0xea,0x4d,0x00,0x87,0xba,0x55,0x04); var CnMonth=new Array(); var CnMonthDays=new Array(); var CnBeginDay; var LeapMonth; var Bytes=new Array(); var I; var CnMonthData; var DaysCount; var CnDaysCount; var ResultMonth; var ResultDay; var yyyy=DateGL.getFullYear(); var mm=DateGL.getMonth()+1; var dd=DateGL.getDate(); if(yyyy<100) yyyy+=1900; if ((yyyy < 1997) || (yyyy > 2020)){ return 0; } Bytes[0] = CnData[(yyyy - 1997) * 4]; Bytes[1] = CnData[(yyyy - 1997) * 4 + 1]; Bytes[2] = CnData[(yyyy - 1997) * 4 + 2]; Bytes[3] = CnData[(yyyy - 1997) * 4 + 3]; if ((Bytes[0] & 0x80) != 0) {CnMonth[0] = 12;} else {CnMonth[0] = 11;} CnBeginDay = (Bytes[0] & 0x7f); CnMonthData = Bytes[1]; CnMonthData = CnMonthData << 8; CnMonthData = CnMonthData | Bytes[2]; LeapMonth = Bytes[3]; for (I=15;I>=0;I--){ CnMonthDays[15 - I] = 29; if (((1 << I) & CnMonthData) != 0 ){ CnMonthDays[15 - I]++;} if (CnMonth[15 - I] == LeapMonth ){ CnMonth[15 - I + 1] = - LeapMonth;} else{ if (CnMonth[15 - I] < 0 ){CnMonth[15 - I + 1] = - CnMonth[15 - I] + 1;} else {CnMonth[15 - I + 1] = CnMonth[15 - I] + 1;} if (CnMonth[15 - I + 1] > 12 ){ CnMonth[15 - I + 1] = 1;} } } DaysCount = DaysNumberofDate(DateGL) - 1; if (DaysCount <= (CnMonthDays[0] - CnBeginDay)){ if ((yyyy > 1901) && (CnDateofDate(new Date((yyyy - 1)+"/12/31")) < 0)){ ResultMonth = - CnMonth[0];} else {ResultMonth = CnMonth[0];} ResultDay = CnBeginDay + DaysCount; } else{ CnDaysCount = CnMonthDays[0] - CnBeginDay; I = 1; while ((CnDaysCount < DaysCount) && (CnDaysCount + CnMonthDays[I] < DaysCount)){ CnDaysCount+= CnMonthDays[I]; I++; } ResultMonth = CnMonth[I]; ResultDay = DaysCount - CnDaysCount; } if (ResultMonth > 0){ return ResultMonth * 100 + ResultDay;} else{return ResultMonth * 100 - ResultDay;} } function CnYearofDate(DateGL){ var YYYY=DateGL.getFullYear(); var MM=DateGL.getMonth()+1; var CnMM=parseInt(Math.abs(CnDateofDate(DateGL))/100); if(YYYY<100) YYYY+=1900; if(CnMM>MM) YYYY--; YYYY-=1864; return CnEra(YYYY)+"年"; } function CnMonthofDate(DateGL){ var CnMonthStr=new Array("零","正","二","三","四","五","六","七","八","九","十","冬","腊"); var Month; Month = parseInt(CnDateofDate(DateGL)/100); if (Month < 0){return "闰" + CnMonthStr[-Month] + "月";} else{return CnMonthStr[Month] + "月";} } function CnDayofDate(DateGL){ var CnDayStr=new Array("零", "初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十"); var Day; Day = (Math.abs(CnDateofDate(DateGL)))%100; return CnDayStr[Day]; } function DaysNumberofMonth(DateGL){ var MM1=DateGL.getFullYear(); MM1<100 ? MM1+=1900:MM1; var MM2=MM1; MM1+="/"+(DateGL.getMonth()+1); MM2+="/"+(DateGL.getMonth()+2); MM1+="/1"; MM2+="/1"; return parseInt((Date.parse(MM2)-Date.parse(MM1))/86400000); } function CnEra(YYYY){ var Tiangan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸"); //var Dizhi=new Array("子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)","巳(蛇)","午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)"); var Dizhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"); return Tiangan[YYYY%10]+Dizhi[YYYY%12]; } function CnDateofDateStr(DateGL){ if(CnMonthofDate(DateGL)=="零月") return "请调整您的计算机日期!"; else return "农历"+CnYearofDate(DateGL)+ "" + CnMonthofDate(DateGL) + CnDayofDate(DateGL); } function SolarTerm(DateGL){ var SolarTermStr=new Array( "小寒","大寒","立春","雨水","惊蛰","春分", "清明","谷雨","立夏","小满","芒种","夏至", "小暑","大暑","立秋","处暑","白露","秋分", "寒露","霜降","立冬","小雪","大雪","冬至"); var DifferenceInMonth=new Array( 1272060,1275495,1281180,1289445,1299225,1310355, 1321560,1333035,1342770,1350855,1356420,1359045, 1358580,1355055,1348695,1340040,1329630,1318455, 1306935,1297380,1286865,1277730,1274550,1271556); var DifferenceInYear=31556926; var BeginTime=new Date(1901/1/1); BeginTime.setTime(947120460000); for(;DateGL.getFullYear()BeginTime.getFullYear();){ BeginTime.setTime(BeginTime.getTime()+DifferenceInYear*1000); } for(var M=0;DateGL.getMonth()>BeginTime.getMonth();M++){ BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000); } if(DateGL.getDate()>BeginTime.getDate()){ BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000); M++; } if(DateGL.getDate()>BeginTime.getDate()){ BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000); M==23?M=0:M++; } var JQ=" [节气:"; if(DateGL.getDate()==BeginTime.getDate()){ JQ+="今日"+SolarTermStr[M] + "]"; } else if(DateGL.getDate()==BeginTime.getDate()-1){ JQ+="明日"+SolarTermStr[M] + "]"; } else if(DateGL.getDate()==BeginTime.getDate()-2){ JQ+="后日"+SolarTermStr[M] + "]"; } else{ JQ=" [节气:"; if(DateGL.getMonth()==BeginTime.getMonth()){ JQ+="本月"; } else{ JQ+="下月"; } JQ+=BeginTime.getDate()+"日"+""+SolarTermStr[M]+"]"; } return JQ; } function solarDay2(){ var today=new Date(); var d = CnDateofDateStr(today)//显示农历 d += SolarTerm(today); //显示二十四节气 return d; } function solarDay3(){ SD = SDD; var f=solarDay(); SD = SDD+1; var d=solarDay(); SD = SDD-1; var z=solarDay(); if(f!=""&&f!=" "){ if(f.substr(0,1)==" "){f=f.substr(1,f.length);} if(f.substr(0,1)==" "){f=f.substr(1,f.length);} f="[节日:"+f+"]"; } if(d!=""&&d!=" "){ if(d.substr(0,1)==" "){d=d.substr(1,d.length);} if(d.substr(0,1)==" "){d=d.substr(1,d.length);} d=" [明日节日:"+d+"]"; } if(z!=""&&z!=" "){ if(z.substr(0,1)==" "){z=z.substr(1,z.length);} if(z.substr(0,1)==" "){z=z.substr(1,z.length);} z="[昨日节日:"+z+"]"; } SD = SDD; return f+d+z; } function solarDay(){ var sTermInfo = new Array(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 = new Array("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"); var lFtv = new Array("0101*春节","0102 春节期间","0103 春节期间","0104 春节期间","0105 春节期间","0106 春节期间","0107 春节期间","0108 春节期间","0109 春节期间","0110 春节期间","0111 春节期间","0112 春节期间","0113 春节期间","0114 春节期间", "0115 元宵节","0505 端午节","0707 七夕情人节","0715 中元节","0815 中秋节","0909 重阳节","1208 腊八节","1223 小年","0100*除夕"); var sFtv = new Array( "0101*元旦节", "0214 情人节", "0308 妇女节", "0312 植树节 孙中山逝世纪念日", "0315 消费者权益日", "0401 愚人节", "0422 世界地球日", "0501*劳动节", "0504 青年节", "0508 世界红十字日", "0512 国际护士节", "0531 世界无烟日", "0601 国际儿童节", "0626 国际禁毒日", "0701 香港回归纪念日 中共诞辰 世界建筑日", "0707 抗日战争纪念日", "0801 建军节", "0808 中国男子节(爸爸节)", "0815 抗日战争胜利纪念", "0908 国际扫盲日 国际新闻工作者日", "0909 毛泽东逝世纪念日", "0910 中国教师节", "0918 九·一八事变纪念日", "0928 孔子诞辰", "1001*国庆节 世界音乐日 国际老人节", "1002*国庆节假日 国际和平与民主自由斗争日", "1003*国庆节假日", "1006 老人节", "1024 联合国日", "1110 世界青年节", "1112 孙中山诞辰纪念日", "1114 世界糖尿病日", "1117 国际大学生节 世界学生节", "1201 世界艾滋病日", "1203 世界残疾人日", "1210 世界人权日", "1212 西安事变纪念日", "1213 南京大屠杀(1937年)纪念日!谨记血泪史!", "1220 澳门回归纪念", "1224 平安夜", "1225 圣诞节", "1226 毛泽东诞辰纪念") var lFtv2 = new Array("0101*春节","0102 春节期间","0103 春节期间","0104 春节期间","0105 春节期间","0106 春节期间","0107 春节期间","0108 春节期间","0109 春节期间","0110 春节期间","0111 春节期间","0112 春节期间","0113 春节期间","0114 春节期间","0115 元宵节","0505 端午节","0815 中秋节","0100*除夕"); var sFtv2 = new Array("0101*元旦节","0501*劳动节","1001*国庆节","1223 ","1224 平安夜","1225 圣诞节"); var jrpop = "|0815|1001|1002|1003|1223|1224|1225|1231|0101|0102|0103|0104|0105|0106|0107|0108|0109|0110|0111|0112|0113|0114|0115|0116|0505|"; var sDObj = new Date(SY,SM,SD); var lDObj = new Lunar(sDObj); var lDPOS = new Array(3) var festival='',solarTerms='',solarFestival='',lunarFestival='',tmp1,tmp2; //农历节日 for(i in lFtv) if(lFtv[i].match(/^(\d{2})(.{2})([\s\*])(.+)$/)) { tmp1=Number(RegExp.$1)-lDObj.month tmp2=Number(RegExp.$2)-lDObj.day if(tmp1==0 && tmp2==0){lunarFestival=RegExp.$4} } //国历节日 for(i in sFtv) if(sFtv[i].match(/^(\d{2})(\d{2})([\s\*])(.+)$/)){ tmp1=Number(RegExp.$1)-(SM+1) tmp2=Number(RegExp.$2)-SD if(tmp1==0 && tmp2==0){solarFestival=RegExp.$4} } //农历节日 for(i in lFtv2) if(lFtv2[i].match(/^(\d{2})(.{2})([\s\*])(.+)$/)) { tmp1=Number(RegExp.$1)-lDObj.month tmp2=Number(RegExp.$2)-lDObj.day if(tmp1==0 && tmp2==0){ if(jrpop.indexOf("|"+RegExp.$1+RegExp.$2+"|")>-1){ jrpic="/Skin/jr/"+RegExp.$1+RegExp.$2+".jpg" } } } //国历节日 for(i in sFtv2) if(sFtv2[i].match(/^(\d{2})(\d{2})([\s\*])(.+)$/)){ tmp1=Number(RegExp.$1)-(SM+1) tmp2=Number(RegExp.$2)-SD if(tmp1==0 && tmp2==0){ if(jrpop.indexOf("|"+RegExp.$1+RegExp.$2+"|")>-1){ jrpic="/Skin/jr/"+RegExp.$1+RegExp.$2+".jpg" } } } if(solarTerms == '' && solarFestival == '' && lunarFestival == ''){ festival = ''; }else{ festival = solarTerms + ' ' + solarFestival + ' ' + lunarFestival; } return festival; } function setCalendar(){ var s=solarDay3(); //if(s!=""){ lunartext='
'; lunartext+=''; lunartext+=''; lunartext+='
'; lunartext+='  今天是'+YYMMDD()+' '+weekday()+' '+solarDay2()+' '+s; lunartext+='
'; //} } setCalendar(); -->