求助:公农历换算 http://www.wzbip.com/moban/htm/dates.htm这个万年历是最全的了,拿去研究吧。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用JScript实现公历到农历的日期转换 bhw98 [原作] http://dev.csdn.net/develop/article/25/25263.shtm 给你一段代码自己慢慢看看:<SCRIPT language=JavaScript><!--/***************************************************************************** 日期资料*****************************************************************************/var lunarInfo=new Array(0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6,0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0)var solarMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);var Gan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");var Zhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");var Animals=new Array("鼠 mouse","牛 cattle","虎 tiger","兔 rabbit","龙 dragon","蛇 snake","马 hours","羊 sheep","猴 monkey","鸡 chook","狗 dog","猪 pig");var solarTerm = new Array("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至")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 nStr1 = new Array('日','一','二','叁','四','五','六','七','八','九','十')var nStr2 = new Array('初','十','廿','卅',' ')var monthName = new Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC");<? echo "$s";?>//国历节日 *表示放假日var sFtv = new Array()//农历节日 *表示放假日var lFtv = new Array()//某月的第几个星期几var wFtv = new Array()/***************************************************************************** 日期计算*****************************************************************************///====================================== 传回农历 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 , 没闰传回 0function 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 .monCylfunction 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} //==============================传回国历 y年某m+1月的天数function solarDays(y,m) { if(m==1) return(((y%4 == 0) && (y%100 != 0) || (y%400 == 0))? 29: 28) else return(solarMonth[m])}//============================== 传入 offset 传回干支, 0=甲子function cyclical(num) { return(Gan[num%10]+Zhi[num%12])}//============================== 月历属性function calElement(sYear,sMonth,sDay,week,lYear,lMonth,lDay,isLeap,cYear,cMonth,cDay) { this.isToday = false; this.isActive = false; //国历 this.sYear = sYear; this.sMonth = sMonth; this.sDay = sDay; this.week = week; //农历 this.lYear = lYear; this.lMonth = lMonth; this.lDay = lDay; this.isLeap = isLeap; //干支 this.cYear = cYear; this.cMonth = cMonth; this.cDay = cDay; this.color = ''; this.lunarFestival = ''; //农历节日 this.solarFestival = ''; //国历节日 this.solarTerms = ''; //节气 this.activeFestival = ''; //有活动得日子}//===== 某年的第n个节气为几日(从0小寒起算)function sTerm(y,n) { var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 ) + Date.UTC(1900,0,6,2,5) ) return(offDate.getUTCDate())}//============================== 传回月历物件 (y年,m+1月)function calendar(y,m) { var sDObj, lDObj, lY, lM, lD=1, lL, lX=0, tmp1, tmp2 var lDPOS = new Array(3) var n = 0 var firstLM = 0 sDObj = new Date(y,m,1) //当月一日日期 this.length = solarDays(y,m) //国历当月天数 this.firstWeek = sDObj.getDay() //国历当月1日星期几 for(var i=0;i<this.length;i++) { if(lD>lX) { sDObj = new Date(y,m,i+1) //当月一日日期 lDObj = new Lunar(sDObj) //农历 lY = lDObj.year //农历年 lM = lDObj.month //农历月 lD = lDObj.day //农历日 lL = lDObj.isLeap //农历是否闰月 lX = lL? leapDays(lY): monthDays(lY,lM) //农历当月最後一天 if(n==0) firstLM = lM lDPOS[n++] = i-lD+1 } //sYear,sMonth,sDay,week, //lYear,lMonth,lDay,isLeap, //cYear,cMonth,cDay this[i] = new calElement(y, m+1, i+1, nStr1[(i+this.firstWeek)%7], lY, lM, lD++, lL, cyclical(lDObj.yearCyl) ,cyclical(lDObj.monCyl), cyclical(lDObj.dayCyl++) ) if((i+this.firstWeek)%7==0) this[i].color = 'red' //周日颜色 if((i+this.firstWeek)%14==13) this[i].color = 'green' //周休二日颜色 } //节气 tmp1=sTerm(y,m*2 )-1 tmp2=sTerm(y,m*2+1)-1 this[tmp1].solarTerms = solarTerm[m*2] this[tmp2].solarTerms = solarTerm[m*2+1] if(m==3) this[tmp1].color = 'black' //清明颜色 //国历节日 for(i in sFtv) if(sFtv[i].match(/^(\d{2})(\d{2})([\s\*])(.+)$/)) if(Number(RegExp.$1)==(m+1)) { this[Number(RegExp.$2)-1].solarFestival += RegExp.$4 + ' ' if(RegExp.$3=='*') this[Number(RegExp.$2)-1].color = 'red' } //月周节日 for(i in wFtv) if(wFtv[i].match(/^(\d{2})(\d)(\d)([\s\*])(.+)$/)) if(Number(RegExp.$1)==(m+1)) { tmp1=Number(RegExp.$2) tmp2=Number(RegExp.$3) this[((this.firstWeek>tmp2)?7:0) + 7*(tmp1-1) + tmp2 - this.firstWeek].solarFestival += RegExp.$5 + ' ' } //农历节日 for(i in lFtv) if(lFtv[i].match(/^(\d{2})(.{2})([\s\*])(.+)$/)) { tmp1=Number(RegExp.$1)-firstLM if(tmp1==-11) tmp1=1 if(tmp1 >=0 && tmp1<n) { tmp2 = lDPOS[tmp1] + Number(RegExp.$2) -1 if( tmp2 >= 0 && tmp2<this.length) { this[tmp2].lunarFestival += RegExp.$4 + ' ' if(RegExp.$3=='*') this[tmp2].color = 'red' } } } //活动时间 for(i in aFtv){ if(aFtv[i].match(/^(\d{4})-(\d{2})-(\d{2})([\s\*])(.+)$/)) { if(Number(RegExp.$1)==y ) if( Number(RegExp.$2)==(m+1)) { this[Number(RegExp.$3)-1].activeFestival += RegExp.$5 + ' ' if(RegExp.$4=='') this[Number(RegExp.$3)-1].color = 'red' this[Number(RegExp.$3)-1].isActive = true; } } } //今日 if(y==tY && m==tM) this[tD-1].isToday = true; } //====================== 中文日期function cDay(d){ var s; switch (d) { case 10: s = '初十'; break; case 20: s = '二十'; break; break; case 30: s = '叁十'; break; break; default : s = nStr2[Math.floor(d/10)]; s += nStr1[d%10]; } return(s);}///////////////////////////////////////////////////////////////////////////////var cld;function drawCld(SY,SM) { var i,sD,s,size; cld = new calendar(SY,SM); if(SY>1949) yDisplay = ((SY==1)?'元':SY-0) GZ.innerHTML = '◆ '+yDisplay +'year ◆China caledar 【' + cyclical(SY-1900+36) + '】yuarS 【'+Animals[(SY-4)%12]+'】'; YMBG.innerHTML = " " + SY + "<BR> " + monthName[SM]; for(i=0;i<42;i++) { sObj=eval('SD'+ i); lObj=eval('LD'+ i); sObj.className = ''; sD = i - cld.firstWeek; if(sD>-1 && sD<cld.length) { //日期内 sObj.innerHTML = sD+1; if(cld[sD].isToday) sObj.className = 'todyaColor'; //今日颜色 if(cld[sD].isActive) sObj.className = 'activeColor'; //活动颜色 sObj.style.color = cld[sD].color; //国定假日颜色 if(cld[sD].lDay==1) //显示农历月 lObj.innerHTML = '<b>'+(cld[sD].isLeap?'闰':'') + cld[sD].lMonth + '月' + (monthDays(cld[sD].lYear,cld[sD].lMonth)==29?'小':'大')+'</b>'; else //显示农历日 lObj.innerHTML = cDay(cld[sD].lDay); s=cld[sD].lunarFestival; if(s.length>0) { //农历节日 if(s.length>6) s = s.substr(0, 4)+'…'; s = s.fontcolor('red'); } else { //国历节日 s=cld[sD].solarFestival; if(s.length>0) { size = (s.charCodeAt(0)>0 && s.charCodeAt(0)<128)?8:4; if(s.length>size+2) s = s.substr(0, size)+'…'; s = s.fontcolor('blue'); } else { //廿四节气 s=cld[sD].solarTerms; if(s.length>0) s = s.fontcolor('limegreen'); } } if(s.length>0) lObj.innerHTML = s; } else { //非日期 sObj.innerHTML = ''; lObj.innerHTML = ''; } }}function changeCld() { var y,m; y=CLD.SY.selectedIndex+1900; m=CLD.SM.selectedIndex; drawCld(y,m);}function pushBtm(K) { switch (K){ case 'YU' : if(CLD.SY.selectedIndex>0) CLD.SY.selectedIndex--; break; case 'YD' : if(CLD.SY.selectedIndex<149) CLD.SY.selectedIndex++; break; case 'MU' : if(CLD.SM.selectedIndex>0) { CLD.SM.selectedIndex--; } else { CLD.SM.selectedIndex=11; if(CLD.SY.selectedIndex>0) CLD.SY.selectedIndex--; } break; case 'MD' : if(CLD.SM.selectedIndex<11) { CLD.SM.selectedIndex++; } else { CLD.SM.selectedIndex=0; if(CLD.SY.selectedIndex<149) CLD.SY.selectedIndex++; } break; default : CLD.SY.selectedIndex=tY-1900; CLD.SM.selectedIndex=tM; } changeCld();}var Today = new Date();var tY = Today.getFullYear();var tM = Today.getMonth();var tD = Today.getDate();//////////////////////////////////////////////////////////////////////////////var width = "130";var offsetx = 2;var offsety = 16;var x = 0;var y = 0;var snow = 0;var sw = 0;var cnt = 0;var dStyle;document.onmousemove = mEvn;//显示详细日期资料function mOvr(v) { var s,festival; var sObj=eval('SD'+ v); var d=sObj.innerHTML-1; //var cursor s-resize //sYear,sMonth,sDay,week, //lYear,lMonth,lDay,isLeap, //cYear,cMonth,cDay if(sObj.innerHTML!='') { sObj.style.cursor ='help'; if(cld[d].solarTerms == '' && cld[d].solarFestival == '' && cld[d].lunarFestival == '' && cld[d].activeFestival=='') festival = ''; else festival = '<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR="#CCFFCC"><TR><TD>'+ '<FONT COLOR="#000000" STYLE="font-size:9pt;">'+cld[d].solarTerms + ' ' + cld[d].solarFestival + ' ' + cld[d].lunarFestival+' '+ cld[d].activeFestival + '</FONT></TD>'+ '</TR></TABLE>'; s= '<TABLE WIDTH="130" BORDER=0 CELLPADDING="2" CELLSPACING=0 BGCOLOR="#000066"><TR><TD>' + '<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD ALIGN="right"><FONT COLOR="#ffffff" STYLE="font-size:9pt;">'+ cld[d].sYear+' - '+cld[d].sMonth+' - '+cld[d].sDay+' '+ '<font </font><br>'+ '<font </font>'+ '</FONT></TD></TR></TABLE>'+ festival +'</TD></TR></TABLE>'; document.all["detail"].innerHTML = s; if (snow == 0) { dStyle.left = x+offsetx-(width/2); dStyle.top = y+offsety; dStyle.visibility = "visible"; snow = 1; } }}//清除详细日期资料function mOut() { if ( cnt >= 1 ) { sw = 0 } if ( sw == 0 ) { snow = 0; dStyle.visibility = "hidden";} else cnt++;}//取得位置function mEvn() { x=event.x; y=event.y; if (document.body.scrollLeft) {x=event.x+document.body.scrollLeft; y=event.y+document.body.scrollTop;} if (snow){ dStyle.left = x+offsetx-(width/2) dStyle.top = y+offsety }}///////////////////////////////////////////////////////////////////////////function changeTZ() { CITY.innerHTML = CLD.TZ.value.substr(6) setCookie("TZ",CLD.TZ.selectedIndex)}function tick() { var today today = new Date() Clock.innerHTML = today.toLocaleString() Clock2.innerHTML = TimeAdd(today.toGMTString(), CLD.TZ.value) window.setTimeout("tick()", 1000);}function setCookie(name, value) { var today = new Date() var expires = new Date() expires.setTime(today.getTime() + 1000*60*60*24*365) document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString()}function getCookie(Name) { var search = Name + "=" if(document.cookie.length > 0) { offset = document.cookie.indexOf(search) if(offset != -1) { offset += search.length end = document.cookie.indexOf(";", offset) if(end == -1) end = document.cookie.length return unescape(document.cookie.substring(offset, end)) } else return "" }}/////////////////////////////////////////////////////////function initial() { resizeTo(780,540) dStyle = detail.style; CLD.SY.selectedIndex=tY-1900; CLD.SM.selectedIndex=tM; drawCld(tY,tM); pushBtm(''); CLD.TZ.selectedIndex=getCookie("TZ"); changeTZ(); tick();if (tM + 1==10 && tD<4) {alert('Today is holiday! In2english wish you a very happy holish !')}if (tM + 1==1 && tD<2) {alert(' Newyear coming! Happy New Year !')}}//--></SCRIPT><SCRIPT language=VBScript><!--'===== 算世界时间Function TimeAdd(UTC,T) Dim PlusMinus, DST, y,tSave If Left(T,1)="-" Then PlusMinus = -1 Else PlusMinus = 1 UTC=Right(UTC,Len(UTC)-5) UTC=Left(UTC,Len(UTC)-4) y = Year(UTC) TimeAdd=DateAdd("n", (Cint(Mid(T,2,2))*60 + Cint(Mid(T,4,2))) * PlusMinus, UTC) '美国日光节约期间: 4月第一个星日00:00 至 10月最後一个星期日00:00 If Mid(T,6,1)="*" And DateSerial(y,4,(9 - Weekday(DateSerial(y,4,1)) mod 7) ) <= TimeAdd And DateSerial(y,10,31 - Weekday(DateSerial(y,10,31))) >= TimeAdd Then TimeAdd=CStr(DateAdd("h", 1, TimeAdd)) & "<FONT STYLE='font-size:18pt;font-family:Wingdings; color:red'>R</FONT>" Else End If TimeAdd = CStr(TimeAdd)End Function'--></SCRIPT> <?//世纪万年历#这是唯一的设置-请输入php文件的位置$file="http://192.168.1.168/php/rl/s2m.php";//#农历每月的天数$everymonth=array(0=>array(8,0,0,0,0,0,0,0,0,0,0,0,29,30,7,1),1=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,8,2),2=>array(0,30,29,30,29,29,30,29,30,29,30,30,30,0,9,3),3=>array(5,29,30,29,30,29,29,30,29,29,30,30,29,30,10,4),4=>array(0,30,30,29,30,29,29,30,29,29,30,30,29,0,1,5),5=>array(0,30,30,29,30,30,29,29,30,29,30,29,30,0,2,6),6=>array(4,29,30,30,29,30,29,30,29,30,29,30,29,30,3,7),7=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,4,8),8=>array(0,30,29,29,30,30,29,30,29,30,30,29,30,0,5,9),9=>array(2,29,30,29,29,30,29,30,29,30,30,30,29,30,6,10),10=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,7,11),11=>array(6,30,29,30,29,29,30,29,29,30,30,29,30,30,8,12),12=>array(0,30,29,30,29,29,30,29,29,30,30,29,30,0,9,1),13=>array(0,30,30,29,30,29,29,30,29,29,30,29,30,0,10,2),14=>array(5,30,30,29,30,29,30,29,30,29,30,29,29,30,1,3),15=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,2,4),16=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,3,5),17=>array(2,30,29,29,30,29,30,30,29,30,30,29,30,29,4,6),18=>array(0,30,29,29,30,29,30,29,30,30,29,30,30,0,5,7),19=>array(7,29,30,29,29,30,29,29,30,30,29,30,30,30,6,8),20=>array(0,29,30,29,29,30,29,29,30,30,29,30,30,0,7,9),21=>array(0,30,29,30,29,29,30,29,29,30,29,30,30,0,8,10),22=>array(5,30,29,30,30,29,29,30,29,29,30,29,30,30,9,11),23=>array(0,29,30,30,29,30,29,30,29,29,30,29,30,0,10,12),24=>array(0,29,30,30,29,30,30,29,30,29,30,29,29,0,1,1),25=>array(4,30,29,30,29,30,30,29,30,30,29,30,29,30,2,2),26=>array(0,29,29,30,29,30,29,30,30,29,30,30,29,0,3,3),27=>array(0,30,29,29,30,29,30,29,30,29,30,30,30,0,4,4),28=>array(2,29,30,29,29,30,29,29,30,29,30,30,30,30,5,5),29=>array(0,29,30,29,29,30,29,29,30,29,30,30,30,0,6,6),30=>array(6,29,30,30,29,29,30,29,29,30,29,30,30,29,7,7),31=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,8,8),32=>array(0,30,30,30,29,30,29,30,29,29,30,29,30,0,9,9),33=>array(5,29,30,30,29,30,30,29,30,29,30,29,29,30,10,10),34=>array(0,29,30,29,30,30,29,30,29,30,30,29,30,0,1,11),35=>array(0,29,29,30,29,30,29,30,30,29,30,30,29,0,2,12),36=>array(3,30,29,29,30,29,29,30,30,29,30,30,30,29,3,1),37=>array(0,30,29,29,30,29,29,30,29,30,30,30,29,0,4,2),38=>array(7,30,30,29,29,30,29,29,30,29,30,30,29,30,5,3),39=>array(0,30,30,29,29,30,29,29,30,29,30,29,30,0,6,4),40=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,7,5),41=>array(6,30,30,29,30,30,29,30,29,29,30,29,30,29,8,6),42=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,9,7),43=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,10,8),44=>array(4,30,29,30,29,30,29,30,29,30,30,29,30,30,1,9),45=>array(0,29,29,30,29,29,30,29,30,30,30,29,30,0,2,10),46=>array(0,30,29,29,30,29,29,30,29,30,30,29,30,0,3,11),47=>array(2,30,30,29,29,30,29,29,30,29,30,29,30,30,4,12),48=>array(0,30,29,30,29,30,29,29,30,29,30,29,30,0,5,1),49=>array(7,30,29,30,30,29,30,29,29,30,29,30,29,30,6,2),50=>array(0,29,30,30,29,30,30,29,29,30,29,30,29,0,7,3),51=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,8,4),52=>array(5,29,30,29,30,29,30,29,30,30,29,30,29,30,9,5),53=>array(0,29,30,29,29,30,30,29,30,30,29,30,29,0,10,6),54=>array(0,30,29,30,29,29,30,29,30,30,29,30,30,0,1,7),55=>array(3,29,30,29,30,29,29,30,29,30,29,30,30,30,2,8),56=>array(0,29,30,29,30,29,29,30,29,30,29,30,30,0,3,9),57=>array(8,30,29,30,29,30,29,29,30,29,30,29,30,29,4,10),58=>array(0,30,30,30,29,30,29,29,30,29,30,29,30,0,5,11),59=>array(0,29,30,30,29,30,29,30,29,30,29,30,29,0,6,12),60=>array(6,30,29,30,29,30,30,29,30,29,30,29,30,29,7,1),61=>array(0,30,29,30,29,30,29,30,30,29,30,29,30,0,8,2),62=>array(0,29,30,29,29,30,29,30,30,29,30,30,29,0,9,3),63=>array(4,30,29,30,29,29,30,29,30,29,30,30,30,29,10,4),64=>array(0,30,29,30,29,29,30,29,30,29,30,30,30,0,1,5),65=>array(0,29,30,29,30,29,29,30,29,29,30,30,29,0,2,6),66=>array(3,30,30,30,29,30,29,29,30,29,29,30,30,29,3,7),67=>array(0,30,30,29,30,30,29,29,30,29,30,29,30,0,4,8),68=>array(7,29,30,29,30,30,29,30,29,30,29,30,29,30,5,9),69=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,6,10),70=>array(0,30,29,29,30,29,30,30,29,30,30,29,30,0,7,11),71=>array(5,29,30,29,29,30,29,30,29,30,30,30,29,30,8,12),72=>array(0,29,30,29,29,30,29,30,29,30,30,29,30,0,9,1),73=>array(0,30,29,30,29,29,30,29,29,30,30,29,30,0,10,2),74=>array(4,30,30,29,30,29,29,30,29,29,30,30,29,30,1,3),75=>array(0,30,30,29,30,29,29,30,29,29,30,29,30,0,2,4),76=>array(8,30,30,29,30,29,30,29,30,29,29,30,29,30,3,5),77=>array(0,30,29,30,30,29,30,29,30,29,30,29,29,0,4,6),78=>array(0,30,29,30,30,29,30,30,29,30,29,30,29,0,5,7),79=>array(6,30,29,29,30,29,30,30,29,30,30,29,30,29,6,8),80=>array(0,30,29,29,30,29,30,29,30,30,29,30,30,0,7,9),81=>array(0,29,30,29,29,30,29,29,30,30,29,30,30,0,8,10),82=>array(4,30,29,30,29,29,30,29,29,30,29,30,30,30,9,11),83=>array(0,30,29,30,29,29,30,29,29,30,29,30,30,0,10,12),84=>array(10,30,29,30,30,29,29,30,29,29,30,29,30,30,1,1),85=>array(0,29,30,30,29,30,29,30,29,29,30,29,30,0,2,2),86=>array(0,29,30,30,29,30,30,29,30,29,30,29,29,0,3,3),87=>array(6,30,29,30,29,30,30,29,30,30,29,30,29,29,4,4),88=>array(0,30,29,30,29,30,29,30,30,29,30,30,29,0,5,5),89=>array(0,30,29,29,30,29,29,30,30,29,30,30,30,0,6,6),90=>array(5,29,30,29,29,30,29,29,30,29,30,30,30,30,7,7),91=>array(0,29,30,29,29,30,29,29,30,29,30,30,30,0,8,8),92=>array(0,29,30,30,29,29,30,29,29,30,29,30,30,0,9,9),93=>array(3,29,30,30,29,30,29,30,29,29,30,29,30,29,10,10),94=>array(0,30,30,30,29,30,29,30,29,29,30,29,30,0,1,11),95=>array(8,29,30,30,29,30,29,30,30,29,29,30,29,30,2,12),96=>array(0,29,30,29,30,30,29,30,29,30,30,29,29,0,3,1),97=>array(0,30,29,30,29,30,29,30,30,29,30,30,29,0,4,2),98=>array(5,30,29,29,30,29,29,30,30,29,30,30,29,30,5,3),99=>array(0,30,29,29,30,29,29,30,29,30,30,30,29,0,6,4),100=>array(0,30,30,29,29,30,29,29,30,29,30,30,29,0,7,5),101=>array(4,30,30,29,30,29,30,29,29,30,29,30,29,30,8,6),102=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,9,7),103=>array(0,30,30,29,30,30,29,30,29,29,30,29,30,0,10,8),104=>array(2,29,30,29,30,30,29,30,29,30,29,30,29,30,1,9),105=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,2,10),106=>array(7,30,29,30,29,30,29,30,29,30,30,29,30,30,3,11),107=>array(0,29,29,30,29,29,30,29,30,30,30,29,30,0,4,12),108=>array(0,30,29,29,30,29,29,30,29,30,30,29,30,0,5,1),109=>array(5,30,30,29,29,30,29,29,30,29,30,29,30,30,6,2),110=>array(0,30,29,30,29,30,29,29,30,29,30,29,30,0,7,3),111=>array(0,30,29,30,30,29,30,29,29,30,29,30,29,0,8,4),112=>array(4,30,29,30,30,29,30,29,30,29,30,29,30,29,9,5),113=>array(0,30,29,30,29,30,30,29,30,29,30,29,30,0,10,6),114=>array(9,29,30,29,30,29,30,29,30,30,29,30,29,30,1,7),115=>array(0,29,30,29,29,30,29,30,30,30,29,30,29,0,2,8),116=>array(0,30,29,30,29,29,30,29,30,30,29,30,30,0,3,9),117=>array(6,29,30,29,30,29,29,30,29,30,29,30,30,30,4,10),118=>array(0,29,30,29,30,29,29,30,29,30,29,30,30,0,5,11),119=>array(0,30,29,30,29,30,29,29,30,29,29,30,30,0,6,12),120=>array(4,29,30,30,30,29,30,29,29,30,29,30,29,30,7,1));###############################农历天干$mten=array("null","甲","乙","丙","丁","戊","己","庚","辛","壬","癸");#农历地支$mtwelve=array("null","子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)", "巳(蛇)","午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)");#农历月份$mmonth=array("闰","正","二","三","四","五","六", "七","八","九","十","十一","十二","月");#农历日$mday=array("null","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十", "十一","十二","十三","十四","十五","十六","十七","十八","十九","二十", "廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十"); ###############################赋给初值#天干地支$ten=0;$twelve=0;#星期$week=5;#农历日$md=0;#农历月$mm=0;#阳历总天数 至1900年12月21日$total=11;#阴历总天数$mtotal=0;###############################获得当日日期$today=getdate();#如果没有输入,设为当日日期if ($year=="" or $month=="" or ($year<1901 or $year>2020) or ($month<1 or $month>12)){ $year=$today[year]; $month=$today[mon]; }###############################计算到所求日期阳历的总天数-自1900年12月21日始#先算年的和for ($y=1901;$y<$year;$y++){ $total+=365; if ($y%4==0) $total ++; }#再加当年的几个月switch ($month){ case 12: $total+=30; case 11: $total+=31; case 10: $total+=30; case 9: $total+=31; case 8: $total+=31; case 7: $total+=30; case 6: $total+=31; case 5: $total+=30; case 4: $total+=31; case 3: $total+=28; case 2: $total+=31; }#如果当年是闰年还要加一天if ($year%4==0 and $month>2){ $total++; }#顺便算出当月1日星期几$week=($total+$week)%7;###############################用农历的天数累加来判断是否超过阳历的天数$flag1=0;#判断跳出循环的条件$j=0;while ($j<=120){ $i=1; while ($i<=13){ $mtotal+=$everymonth[$j][$i]; if ($mtotal>=$total){ $flag1=1; break; } $i++; } if ($flag1==1) break; $j++; }###############################计算所求月份1号的农历日期$md=$everymonth[$j][$i]-($mtotal-$total);#月头空开的天数$k=$week;#是否跨越一年switch ($month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: $dd=31; break; case 4: case 6: case 9: case 11: $dd=30; break; case 2: if ($year%4==0){ $dd=29; }else{ $dd=28; } break; }#是否跨越一年$ty=0;if ((($everymonth[$j][0]<>0 and $i==13) or ($everymonth[$j][0]==0 and $i==12)) and $mtotal-$total<$dd) $ty=1;?><html><head><title>世纪万年历</title><style type="text/css"><!--input { font-size:9pt;}A:link {text-decoration: underline; font-size:9pt;color:000059}A:visited {text-decoration: underline; font-size:9pt;color:000059}A:active {text-decoration: none; font-size:9pt}A:hover {text-decoration:underline;color:red}body,table {font-size: 9pt}tr,td{font-size:9pt}--></style></head><body alink="#FF0000" link="#000099" vlink="#CC6600" topmargin="8" leftmargin="0" bgColor="#FFFFFF"><? //打印年月抬头 echo "<p align=\"center\"><font size=\"6\"><b>".$year."年".$month."月</b></font></p>\n"; if($ty==0) { echo "<p align=\"center\"><b><font size=\"4\">".$mten[$everymonth[$j][14]].$mtwelve[$everymonth[$j][15]]."年</font></b></p>"; } else { echo "<p align=\"center\"><b><font size=\"4\">".$mten[$everymonth[$j][14]].$mtwelve[$everymonth[$j][15]]."/".$mten[$everymonth[$j+1][14]].$mtwelve[$everymonth[$j+1][15]]."年</font></b></p>"; }?> <div align="center"> <center> <table border="1" width="85%"> <tr> <td align="center" bgcolor="#CCCCCC"><font color="#FF0000"><b>星期日</b></font></td> <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期一</b></td> <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期二</b></td> <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期三</b></td> <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期四</b></td> <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期五</b></td> <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期六</b></td> </tr><?$day=1;$line=0;while ($day<=$dd){ echo "<tr>\n"; for ($s=0;$s<=6;$s++){ if ($k<>0 or $day>$dd){ echo "<td width=\"14%\" align=\"center\"> </td>\n"; $k--; }else{ //设置字符颜色 switch ($s){ case 1: case 2: case 3: case 4: case 5: $color="#000000"; break; case 0: $color="#FF0000"; break; case 6: $color="#008000"; break; }#生成中文农历 if ($md==1){#1日打印月份 if ($everymonth[$j][0]<>0 and $everymonth[$j][0]<$i){ $mm=$i-1; }else{ $mm=$i; } if ($i==$everymonth[$j][0]+1 and $everymonth[$j][0]<>0) $chi=$mmonth[0].$mmonth[$mm];#闰月 else $chi=$mmonth[$mm].$mmonth[13]; }else{ $chi=$mday[$md]; } echo "<td width=\"14%\" align=\"center\"><font color=\"$color\"><b>$day </b> <b><font size=\"2\">$chi</font></b></font></td>\n"; $day++; $md++; if ($md>$everymonth[$j][$i]){ $md=1; $i++; } if (($i>12 and $everymonth[$j][0]==0) or ($i>13 and $everymonth[$j][0]<>0)){ $i=1; $j++; } } } echo "</tr>\n"; $line++;}?> </table> </center></div><?php#补足空行for ($l=1;$l<=(6-$line);$l++){ echo "<table border=\"0\" width=\"100%\">\n"; echo "<tr>\n"; echo "<td width=\"100%\"><font color=\"#CCFFFF\">a</font></td>\n"; echo "</tr>\n"; echo "</table>\n"; }#打印上一月,下一月$ly=$ny=$year;$last=$month-1;if ($last==0){ $last=12; $ly--; }$next=$month+1;if ($next==13){ $next=1; $ny++; }if ($ly>=1901)echo "<p align=\"center\"><a href=\"".$file."?year=".$ly."&month=".$last."\"><<上一个月</a> \n";elseecho "<p align=\"center\">";if ($ny<=2020)echo "<a href=\"".$file."?year=".$ny."&month=".$next."\">下一个月>></a></p>\n";?> <?phpecho "<form method=\"POST\" action=\"".$file."\">\n";?> <p align="center"><font color="#000000">年份:</font><select size="1" name="year"> <option>2020</option> <option>2019</option> <option>2018</option> <option>2017</option> <option>2016</option> <option>2015</option> <option>2014</option> <option>2013</option> <option>2012</option> <option>2011</option> <option>2010</option> <option>2009</option> <option>2008</option> <option>2007</option> <option>2006</option> <option>2005</option> <option>2004</option> <option>2003</option> <option>2002</option> <option>2001</option> <option selected>2000</option> <option>1999</option> <option>1998</option> <option>1997</option> <option>1996</option> <option>1995</option> <option>1994</option> <option>1993</option> <option>1992</option> <option>1991</option> <option>1990</option> <option>1989</option> <option>1988</option> <option>1987</option> <option>1986</option> <option>1985</option> <option>1984</option> <option>1983</option> <option>1982</option> <option>1981</option> <option>1980</option> <option>1979</option> <option>1978</option> <option>1977</option> <option>1976</option> <option>1975</option> <option>1974</option> <option>1973</option> <option>1972</option> <option>1971</option> <option>1970</option> <option>1969</option> <option>1968</option> <option>1967</option> <option>1966</option> <option>1965</option> <option>1964</option> <option>1963</option> <option>1962</option> <option>1961</option> <option>1960</option> <option>1959</option> <option>1958</option> <option>1957</option> <option>1956</option> <option>1955</option> <option>1954</option> <option>1953</option> <option>1952</option> <option>1951</option> <option>1950</option> <option>1949</option> <option>1948</option> <option>1947</option> <option>1946</option> <option>1945</option> <option>1944</option> <option>1943</option> <option>1942</option> <option>1941</option> <option>1940</option> <option>1939</option> <option>1938</option> <option>1937</option> <option>1936</option> <option>1935</option> <option>1934</option> <option>1933</option> <option>1932</option> <option>1931</option> <option>1930</option> <option>1929</option> <option>1928</option> <option>1927</option> <option>1926</option> <option>1925</option> <option>1924</option> <option>1923</option> <option>1922</option> <option>1921</option> <option>1920</option> <option>1919</option> <option>1918</option> <option>1917</option> <option>1916</option> <option>1915</option> <option>1914</option> <option>1913</option> <option>1912</option> <option>1911</option> <option>1910</option> <option>1909</option> <option>1908</option> <option>1907</option> <option>1906</option> <option>1905</option> <option>1904</option> <option>1903</option> <option>1902</option> <option>1901</option> </select><font color="#000000">年</font><font color="#000000"> 月份:<select size="1" name="month"> <option selected>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option> <option>11</option> <option>12</option> </select>月 </font><input type="submit" value="查询" name="B1"></p></form></body></html> dojo tree问题 Extjs window窗口属性怎么覆写呢?帮帮忙,谢谢了。 Ext.NET 1.0 怎么和JQuery 一起用? 为什么xloadtree里的dmeo不能在IE里浏览 jquery拖动层,改成拼图的时候,内元素为img为产生异常,求解?求高手 javascript 获取整个网页的大小 jQuery获取变量id问题 EXTJS tab 切换时提示 错误 href怎么传递js中的变量 javascript <p> onselect 获取选中值 如何在JavaScript中用Request["AAA"]得到AAA的值? 高分求教:防止ASP程序被其他网站调用问题。
http://dev.csdn.net/develop/article/25/25263.shtm
<SCRIPT language=JavaScript>
<!--
/*****************************************************************************
日期资料
*****************************************************************************/var lunarInfo=new Array(
0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,
0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,
0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,
0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,
0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,
0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,
0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,
0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6,
0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,
0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,
0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,
0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,
0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,
0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,
0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0)var solarMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var Gan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");
var Zhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");
var Animals=new Array("鼠 mouse","牛 cattle","虎 tiger","兔 rabbit","龙 dragon","蛇 snake","马 hours","羊 sheep","猴 monkey","鸡 chook","狗 dog","猪 pig");
var solarTerm = new Array("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至")
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 nStr1 = new Array('日','一','二','叁','四','五','六','七','八','九','十')
var nStr2 = new Array('初','十','廿','卅',' ')
var monthName = new Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC");
<?
echo "$s";
?>
//国历节日 *表示放假日
var sFtv = new Array(
)//农历节日 *表示放假日
var lFtv = new Array(
)//某月的第几个星期几
var wFtv = new Array(
)
/*****************************************************************************
日期计算
*****************************************************************************///====================================== 传回农历 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 solarDays(y,m) {
if(m==1)
return(((y%4 == 0) && (y%100 != 0) || (y%400 == 0))? 29: 28)
else
return(solarMonth[m])
}
//============================== 传入 offset 传回干支, 0=甲子
function cyclical(num) {
return(Gan[num%10]+Zhi[num%12])
}//============================== 月历属性
function calElement(sYear,sMonth,sDay,week,lYear,lMonth,lDay,isLeap,cYear,cMonth,cDay) { this.isToday = false;
this.isActive = false;
//国历
this.sYear = sYear;
this.sMonth = sMonth;
this.sDay = sDay;
this.week = week;
//农历
this.lYear = lYear;
this.lMonth = lMonth;
this.lDay = lDay;
this.isLeap = isLeap;
//干支
this.cYear = cYear;
this.cMonth = cMonth;
this.cDay = cDay; this.color = ''; this.lunarFestival = ''; //农历节日
this.solarFestival = ''; //国历节日
this.solarTerms = ''; //节气
this.activeFestival = ''; //有活动得日子}//===== 某年的第n个节气为几日(从0小寒起算)
function sTerm(y,n) {
var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 ) + Date.UTC(1900,0,6,2,5) )
return(offDate.getUTCDate())
}//============================== 传回月历物件 (y年,m+1月)
function calendar(y,m) { var sDObj, lDObj, lY, lM, lD=1, lL, lX=0, tmp1, tmp2
var lDPOS = new Array(3)
var n = 0
var firstLM = 0 sDObj = new Date(y,m,1) //当月一日日期 this.length = solarDays(y,m) //国历当月天数
this.firstWeek = sDObj.getDay() //国历当月1日星期几
for(var i=0;i<this.length;i++) { if(lD>lX) {
sDObj = new Date(y,m,i+1) //当月一日日期
lDObj = new Lunar(sDObj) //农历
lY = lDObj.year //农历年
lM = lDObj.month //农历月
lD = lDObj.day //农历日
lL = lDObj.isLeap //农历是否闰月
lX = lL? leapDays(lY): monthDays(lY,lM) //农历当月最後一天 if(n==0) firstLM = lM
lDPOS[n++] = i-lD+1
} //sYear,sMonth,sDay,week,
//lYear,lMonth,lDay,isLeap,
//cYear,cMonth,cDay
this[i] = new calElement(y, m+1, i+1, nStr1[(i+this.firstWeek)%7],
lY, lM, lD++, lL,
cyclical(lDObj.yearCyl) ,cyclical(lDObj.monCyl), cyclical(lDObj.dayCyl++) )
if((i+this.firstWeek)%7==0) this[i].color = 'red' //周日颜色
if((i+this.firstWeek)%14==13) this[i].color = 'green' //周休二日颜色
} //节气
tmp1=sTerm(y,m*2 )-1
tmp2=sTerm(y,m*2+1)-1
this[tmp1].solarTerms = solarTerm[m*2]
this[tmp2].solarTerms = solarTerm[m*2+1]
if(m==3) this[tmp1].color = 'black' //清明颜色 //国历节日
for(i in sFtv)
if(sFtv[i].match(/^(\d{2})(\d{2})([\s\*])(.+)$/))
if(Number(RegExp.$1)==(m+1)) {
this[Number(RegExp.$2)-1].solarFestival += RegExp.$4 + ' '
if(RegExp.$3=='*') this[Number(RegExp.$2)-1].color = 'red'
} //月周节日
for(i in wFtv)
if(wFtv[i].match(/^(\d{2})(\d)(\d)([\s\*])(.+)$/))
if(Number(RegExp.$1)==(m+1)) {
tmp1=Number(RegExp.$2)
tmp2=Number(RegExp.$3)
this[((this.firstWeek>tmp2)?7:0) + 7*(tmp1-1) + tmp2 - this.firstWeek].solarFestival += RegExp.$5 + ' '
} //农历节日
for(i in lFtv)
if(lFtv[i].match(/^(\d{2})(.{2})([\s\*])(.+)$/)) {
tmp1=Number(RegExp.$1)-firstLM
if(tmp1==-11) tmp1=1
if(tmp1 >=0 && tmp1<n) {
tmp2 = lDPOS[tmp1] + Number(RegExp.$2) -1
if( tmp2 >= 0 && tmp2<this.length) {
this[tmp2].lunarFestival += RegExp.$4 + ' '
if(RegExp.$3=='*') this[tmp2].color = 'red'
}
}
}
//活动时间
for(i in aFtv){
if(aFtv[i].match(/^(\d{4})-(\d{2})-(\d{2})([\s\*])(.+)$/)) {
if(Number(RegExp.$1)==y )
if( Number(RegExp.$2)==(m+1)) {
this[Number(RegExp.$3)-1].activeFestival += RegExp.$5 + ' '
if(RegExp.$4=='') this[Number(RegExp.$3)-1].color = 'red'
this[Number(RegExp.$3)-1].isActive = true;
}
}
} //今日
if(y==tY && m==tM) this[tD-1].isToday = true;
}
function cDay(d){
var s; switch (d) {
case 10:
s = '初十'; break;
case 20:
s = '二十'; break;
break;
case 30:
s = '叁十'; break;
break;
default :
s = nStr2[Math.floor(d/10)];
s += nStr1[d%10];
}
return(s);
}///////////////////////////////////////////////////////////////////////////////var cld;function drawCld(SY,SM) {
var i,sD,s,size;
cld = new calendar(SY,SM); if(SY>1949) yDisplay = ((SY==1)?'元':SY-0) GZ.innerHTML = '◆ '+yDisplay +'year ◆China caledar 【' + cyclical(SY-1900+36) + '】yuarS 【'+Animals[(SY-4)%12]+'】'; YMBG.innerHTML = " " + SY + "<BR> " + monthName[SM];
for(i=0;i<42;i++) { sObj=eval('SD'+ i);
lObj=eval('LD'+ i); sObj.className = ''; sD = i - cld.firstWeek; if(sD>-1 && sD<cld.length) { //日期内
sObj.innerHTML = sD+1; if(cld[sD].isToday) sObj.className = 'todyaColor'; //今日颜色
if(cld[sD].isActive) sObj.className = 'activeColor'; //活动颜色
sObj.style.color = cld[sD].color; //国定假日颜色 if(cld[sD].lDay==1) //显示农历月
lObj.innerHTML = '<b>'+(cld[sD].isLeap?'闰':'') + cld[sD].lMonth + '月' + (monthDays(cld[sD].lYear,cld[sD].lMonth)==29?'小':'大')+'</b>';
else //显示农历日
lObj.innerHTML = cDay(cld[sD].lDay); s=cld[sD].lunarFestival;
if(s.length>0) { //农历节日
if(s.length>6) s = s.substr(0, 4)+'…';
s = s.fontcolor('red');
}
else { //国历节日
s=cld[sD].solarFestival;
if(s.length>0) {
size = (s.charCodeAt(0)>0 && s.charCodeAt(0)<128)?8:4;
if(s.length>size+2) s = s.substr(0, size)+'…';
s = s.fontcolor('blue');
}
else { //廿四节气
s=cld[sD].solarTerms;
if(s.length>0) s = s.fontcolor('limegreen');
}
}
if(s.length>0) lObj.innerHTML = s; }
else { //非日期
sObj.innerHTML = '';
lObj.innerHTML = '';
}
}
}
function changeCld() {
var y,m;
y=CLD.SY.selectedIndex+1900;
m=CLD.SM.selectedIndex;
drawCld(y,m);
}function pushBtm(K) {
switch (K){
case 'YU' :
if(CLD.SY.selectedIndex>0) CLD.SY.selectedIndex--;
break;
case 'YD' :
if(CLD.SY.selectedIndex<149) CLD.SY.selectedIndex++;
break;
case 'MU' :
if(CLD.SM.selectedIndex>0) {
CLD.SM.selectedIndex--;
}
else {
CLD.SM.selectedIndex=11;
if(CLD.SY.selectedIndex>0) CLD.SY.selectedIndex--;
}
break;
case 'MD' :
if(CLD.SM.selectedIndex<11) {
CLD.SM.selectedIndex++;
}
else {
CLD.SM.selectedIndex=0;
if(CLD.SY.selectedIndex<149) CLD.SY.selectedIndex++;
}
break;
default :
CLD.SY.selectedIndex=tY-1900;
CLD.SM.selectedIndex=tM;
}
changeCld();
}var Today = new Date();
var tY = Today.getFullYear();
var tM = Today.getMonth();
var tD = Today.getDate();
//////////////////////////////////////////////////////////////////////////////var width = "130";
var offsetx = 2;
var offsety = 16;var x = 0;
var y = 0;
var snow = 0;
var sw = 0;
var cnt = 0;var dStyle;
document.onmousemove = mEvn;//显示详细日期资料
function mOvr(v) {
var s,festival;
var sObj=eval('SD'+ v);
var d=sObj.innerHTML-1;
//var cursor s-resize //sYear,sMonth,sDay,week,
//lYear,lMonth,lDay,isLeap,
//cYear,cMonth,cDay if(sObj.innerHTML!='') { sObj.style.cursor ='help';
if(cld[d].solarTerms == '' && cld[d].solarFestival == '' && cld[d].lunarFestival == '' && cld[d].activeFestival=='')
festival = '';
else
festival = '<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR="#CCFFCC"><TR><TD>'+
'<FONT COLOR="#000000" STYLE="font-size:9pt;">'+cld[d].solarTerms + ' ' + cld[d].solarFestival + ' ' + cld[d].lunarFestival+' '+ cld[d].activeFestival + '</FONT></TD>'+
'</TR></TABLE>';
s= '<TABLE WIDTH="130" BORDER=0 CELLPADDING="2" CELLSPACING=0 BGCOLOR="#000066"><TR><TD>' +
'<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD ALIGN="right"><FONT COLOR="#ffffff" STYLE="font-size:9pt;">'+
cld[d].sYear+' - '+cld[d].sMonth+' - '+cld[d].sDay+' '+
'<font </font><br>'+
'<font </font>'+
'</FONT></TD></TR></TABLE>'+ festival +'</TD></TR></TABLE>';
document.all["detail"].innerHTML = s; if (snow == 0) {
dStyle.left = x+offsetx-(width/2);
dStyle.top = y+offsety;
dStyle.visibility = "visible";
snow = 1;
}
}
}//清除详细日期资料
function mOut() {
if ( cnt >= 1 ) { sw = 0 }
if ( sw == 0 ) { snow = 0; dStyle.visibility = "hidden";}
else cnt++;
}//取得位置
function mEvn() {
x=event.x;
y=event.y;
if (document.body.scrollLeft)
{x=event.x+document.body.scrollLeft; y=event.y+document.body.scrollTop;}
if (snow){
dStyle.left = x+offsetx-(width/2)
dStyle.top = y+offsety
}
}///////////////////////////////////////////////////////////////////////////function changeTZ() {
CITY.innerHTML = CLD.TZ.value.substr(6)
setCookie("TZ",CLD.TZ.selectedIndex)
}
function tick() {
var today
today = new Date()
Clock.innerHTML = today.toLocaleString()
Clock2.innerHTML = TimeAdd(today.toGMTString(), CLD.TZ.value)
window.setTimeout("tick()", 1000);
}function setCookie(name, value) {
var today = new Date()
var expires = new Date()
expires.setTime(today.getTime() + 1000*60*60*24*365)
document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString()
}function getCookie(Name) {
var search = Name + "="
if(document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if(offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset)
if(end == -1) end = document.cookie.length
return unescape(document.cookie.substring(offset, end))
}
else return ""
}
}/////////////////////////////////////////////////////////function initial() {
resizeTo(780,540)
dStyle = detail.style;
CLD.SY.selectedIndex=tY-1900;
CLD.SM.selectedIndex=tM;
drawCld(tY,tM);
pushBtm('');
CLD.TZ.selectedIndex=getCookie("TZ");
changeTZ();
tick();
if (tM + 1==10 && tD<4) {alert('Today is holiday! In2english wish you a very happy holish !')}
if (tM + 1==1 && tD<2) {alert(' Newyear coming! Happy New Year !')}
}
//-->
</SCRIPT><SCRIPT language=VBScript>
<!--
'===== 算世界时间
Function TimeAdd(UTC,T)
Dim PlusMinus, DST, y,tSave
If Left(T,1)="-" Then PlusMinus = -1 Else PlusMinus = 1
UTC=Right(UTC,Len(UTC)-5)
UTC=Left(UTC,Len(UTC)-4)
y = Year(UTC)
TimeAdd=DateAdd("n", (Cint(Mid(T,2,2))*60 + Cint(Mid(T,4,2))) * PlusMinus, UTC)
'美国日光节约期间: 4月第一个星日00:00 至 10月最後一个星期日00:00
If Mid(T,6,1)="*" And DateSerial(y,4,(9 - Weekday(DateSerial(y,4,1)) mod 7) ) <= TimeAdd And DateSerial(y,10,31 - Weekday(DateSerial(y,10,31))) >= TimeAdd Then
TimeAdd=CStr(DateAdd("h", 1, TimeAdd)) & "<FONT STYLE='font-size:18pt;font-family:Wingdings; color:red'>R</FONT>"
Else
End If
TimeAdd = CStr(TimeAdd)
End Function
'-->
</SCRIPT>
//世纪万年历
#这是唯一的设置-请输入php文件的位置
$file="http://192.168.1.168/php/rl/s2m.php";
//#农历每月的天数
$everymonth=array(
0=>array(8,0,0,0,0,0,0,0,0,0,0,0,29,30,7,1),
1=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,8,2),
2=>array(0,30,29,30,29,29,30,29,30,29,30,30,30,0,9,3),
3=>array(5,29,30,29,30,29,29,30,29,29,30,30,29,30,10,4),
4=>array(0,30,30,29,30,29,29,30,29,29,30,30,29,0,1,5),
5=>array(0,30,30,29,30,30,29,29,30,29,30,29,30,0,2,6),
6=>array(4,29,30,30,29,30,29,30,29,30,29,30,29,30,3,7),
7=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,4,8),
8=>array(0,30,29,29,30,30,29,30,29,30,30,29,30,0,5,9),
9=>array(2,29,30,29,29,30,29,30,29,30,30,30,29,30,6,10),
10=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,7,11),
11=>array(6,30,29,30,29,29,30,29,29,30,30,29,30,30,8,12),
12=>array(0,30,29,30,29,29,30,29,29,30,30,29,30,0,9,1),
13=>array(0,30,30,29,30,29,29,30,29,29,30,29,30,0,10,2),
14=>array(5,30,30,29,30,29,30,29,30,29,30,29,29,30,1,3),
15=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,2,4),
16=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,3,5),
17=>array(2,30,29,29,30,29,30,30,29,30,30,29,30,29,4,6),
18=>array(0,30,29,29,30,29,30,29,30,30,29,30,30,0,5,7),
19=>array(7,29,30,29,29,30,29,29,30,30,29,30,30,30,6,8),
20=>array(0,29,30,29,29,30,29,29,30,30,29,30,30,0,7,9),
21=>array(0,30,29,30,29,29,30,29,29,30,29,30,30,0,8,10),
22=>array(5,30,29,30,30,29,29,30,29,29,30,29,30,30,9,11),
23=>array(0,29,30,30,29,30,29,30,29,29,30,29,30,0,10,12),
24=>array(0,29,30,30,29,30,30,29,30,29,30,29,29,0,1,1),
25=>array(4,30,29,30,29,30,30,29,30,30,29,30,29,30,2,2),
26=>array(0,29,29,30,29,30,29,30,30,29,30,30,29,0,3,3),
27=>array(0,30,29,29,30,29,30,29,30,29,30,30,30,0,4,4),
28=>array(2,29,30,29,29,30,29,29,30,29,30,30,30,30,5,5),
29=>array(0,29,30,29,29,30,29,29,30,29,30,30,30,0,6,6),
30=>array(6,29,30,30,29,29,30,29,29,30,29,30,30,29,7,7),
31=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,8,8),
32=>array(0,30,30,30,29,30,29,30,29,29,30,29,30,0,9,9),
33=>array(5,29,30,30,29,30,30,29,30,29,30,29,29,30,10,10),
34=>array(0,29,30,29,30,30,29,30,29,30,30,29,30,0,1,11),
35=>array(0,29,29,30,29,30,29,30,30,29,30,30,29,0,2,12),
36=>array(3,30,29,29,30,29,29,30,30,29,30,30,30,29,3,1),
37=>array(0,30,29,29,30,29,29,30,29,30,30,30,29,0,4,2),
38=>array(7,30,30,29,29,30,29,29,30,29,30,30,29,30,5,3),
39=>array(0,30,30,29,29,30,29,29,30,29,30,29,30,0,6,4),
40=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,7,5),
41=>array(6,30,30,29,30,30,29,30,29,29,30,29,30,29,8,6),
42=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,9,7),
43=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,10,8),
44=>array(4,30,29,30,29,30,29,30,29,30,30,29,30,30,1,9),
45=>array(0,29,29,30,29,29,30,29,30,30,30,29,30,0,2,10),
46=>array(0,30,29,29,30,29,29,30,29,30,30,29,30,0,3,11),
47=>array(2,30,30,29,29,30,29,29,30,29,30,29,30,30,4,12),
48=>array(0,30,29,30,29,30,29,29,30,29,30,29,30,0,5,1),
49=>array(7,30,29,30,30,29,30,29,29,30,29,30,29,30,6,2),
50=>array(0,29,30,30,29,30,30,29,29,30,29,30,29,0,7,3),
51=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,8,4),
52=>array(5,29,30,29,30,29,30,29,30,30,29,30,29,30,9,5),
53=>array(0,29,30,29,29,30,30,29,30,30,29,30,29,0,10,6),
54=>array(0,30,29,30,29,29,30,29,30,30,29,30,30,0,1,7),
55=>array(3,29,30,29,30,29,29,30,29,30,29,30,30,30,2,8),
56=>array(0,29,30,29,30,29,29,30,29,30,29,30,30,0,3,9),
57=>array(8,30,29,30,29,30,29,29,30,29,30,29,30,29,4,10),
58=>array(0,30,30,30,29,30,29,29,30,29,30,29,30,0,5,11),
59=>array(0,29,30,30,29,30,29,30,29,30,29,30,29,0,6,12),
60=>array(6,30,29,30,29,30,30,29,30,29,30,29,30,29,7,1),
61=>array(0,30,29,30,29,30,29,30,30,29,30,29,30,0,8,2),
62=>array(0,29,30,29,29,30,29,30,30,29,30,30,29,0,9,3),
63=>array(4,30,29,30,29,29,30,29,30,29,30,30,30,29,10,4),
64=>array(0,30,29,30,29,29,30,29,30,29,30,30,30,0,1,5),
65=>array(0,29,30,29,30,29,29,30,29,29,30,30,29,0,2,6),
66=>array(3,30,30,30,29,30,29,29,30,29,29,30,30,29,3,7),
67=>array(0,30,30,29,30,30,29,29,30,29,30,29,30,0,4,8),
68=>array(7,29,30,29,30,30,29,30,29,30,29,30,29,30,5,9),
69=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,6,10),
70=>array(0,30,29,29,30,29,30,30,29,30,30,29,30,0,7,11),
71=>array(5,29,30,29,29,30,29,30,29,30,30,30,29,30,8,12),
72=>array(0,29,30,29,29,30,29,30,29,30,30,29,30,0,9,1),
73=>array(0,30,29,30,29,29,30,29,29,30,30,29,30,0,10,2),
74=>array(4,30,30,29,30,29,29,30,29,29,30,30,29,30,1,3),
75=>array(0,30,30,29,30,29,29,30,29,29,30,29,30,0,2,4),
76=>array(8,30,30,29,30,29,30,29,30,29,29,30,29,30,3,5),
77=>array(0,30,29,30,30,29,30,29,30,29,30,29,29,0,4,6),
78=>array(0,30,29,30,30,29,30,30,29,30,29,30,29,0,5,7),
79=>array(6,30,29,29,30,29,30,30,29,30,30,29,30,29,6,8),
80=>array(0,30,29,29,30,29,30,29,30,30,29,30,30,0,7,9),
81=>array(0,29,30,29,29,30,29,29,30,30,29,30,30,0,8,10),
82=>array(4,30,29,30,29,29,30,29,29,30,29,30,30,30,9,11),
83=>array(0,30,29,30,29,29,30,29,29,30,29,30,30,0,10,12),
84=>array(10,30,29,30,30,29,29,30,29,29,30,29,30,30,1,1),
85=>array(0,29,30,30,29,30,29,30,29,29,30,29,30,0,2,2),
86=>array(0,29,30,30,29,30,30,29,30,29,30,29,29,0,3,3),
87=>array(6,30,29,30,29,30,30,29,30,30,29,30,29,29,4,4),
88=>array(0,30,29,30,29,30,29,30,30,29,30,30,29,0,5,5),
89=>array(0,30,29,29,30,29,29,30,30,29,30,30,30,0,6,6),
90=>array(5,29,30,29,29,30,29,29,30,29,30,30,30,30,7,7),
91=>array(0,29,30,29,29,30,29,29,30,29,30,30,30,0,8,8),
92=>array(0,29,30,30,29,29,30,29,29,30,29,30,30,0,9,9),
93=>array(3,29,30,30,29,30,29,30,29,29,30,29,30,29,10,10),
94=>array(0,30,30,30,29,30,29,30,29,29,30,29,30,0,1,11),
95=>array(8,29,30,30,29,30,29,30,30,29,29,30,29,30,2,12),
96=>array(0,29,30,29,30,30,29,30,29,30,30,29,29,0,3,1),
97=>array(0,30,29,30,29,30,29,30,30,29,30,30,29,0,4,2),
98=>array(5,30,29,29,30,29,29,30,30,29,30,30,29,30,5,3),
99=>array(0,30,29,29,30,29,29,30,29,30,30,30,29,0,6,4),
100=>array(0,30,30,29,29,30,29,29,30,29,30,30,29,0,7,5),
101=>array(4,30,30,29,30,29,30,29,29,30,29,30,29,30,8,6),
102=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,9,7),
103=>array(0,30,30,29,30,30,29,30,29,29,30,29,30,0,10,8),
104=>array(2,29,30,29,30,30,29,30,29,30,29,30,29,30,1,9),
105=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,2,10),
106=>array(7,30,29,30,29,30,29,30,29,30,30,29,30,30,3,11),
107=>array(0,29,29,30,29,29,30,29,30,30,30,29,30,0,4,12),
108=>array(0,30,29,29,30,29,29,30,29,30,30,29,30,0,5,1),
109=>array(5,30,30,29,29,30,29,29,30,29,30,29,30,30,6,2),
110=>array(0,30,29,30,29,30,29,29,30,29,30,29,30,0,7,3),
111=>array(0,30,29,30,30,29,30,29,29,30,29,30,29,0,8,4),
112=>array(4,30,29,30,30,29,30,29,30,29,30,29,30,29,9,5),
113=>array(0,30,29,30,29,30,30,29,30,29,30,29,30,0,10,6),
114=>array(9,29,30,29,30,29,30,29,30,30,29,30,29,30,1,7),
115=>array(0,29,30,29,29,30,29,30,30,30,29,30,29,0,2,8),
116=>array(0,30,29,30,29,29,30,29,30,30,29,30,30,0,3,9),
117=>array(6,29,30,29,30,29,29,30,29,30,29,30,30,30,4,10),
118=>array(0,29,30,29,30,29,29,30,29,30,29,30,30,0,5,11),
119=>array(0,30,29,30,29,30,29,29,30,29,29,30,30,0,6,12),
120=>array(4,29,30,30,30,29,30,29,29,30,29,30,29,30,7,1)
);
##############################
#农历天干
$mten=array("null","甲","乙","丙","丁","戊","己","庚","辛","壬","癸");
#农历地支
$mtwelve=array("null","子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)",
"巳(蛇)","午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)");
#农历月份
$mmonth=array("闰","正","二","三","四","五","六",
"七","八","九","十","十一","十二","月");
#农历日
$mday=array("null","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十",
"十一","十二","十三","十四","十五","十六","十七","十八","十九","二十",
"廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十");
#赋给初值
#天干地支
$ten=0;
$twelve=0;
#星期
$week=5;
#农历日
$md=0;
#农历月
$mm=0;
#阳历总天数 至1900年12月21日
$total=11;
#阴历总天数
$mtotal=0;
##############################
#获得当日日期
$today=getdate();
#如果没有输入,设为当日日期
if ($year=="" or $month=="" or ($year<1901 or $year>2020)
or ($month<1 or $month>12)){
$year=$today[year];
$month=$today[mon];
}
##############################
#计算到所求日期阳历的总天数-自1900年12月21日始
#先算年的和
for ($y=1901;$y<$year;$y++){
$total+=365;
if ($y%4==0) $total ++;
}
#再加当年的几个月
switch ($month){
case 12:
$total+=30;
case 11:
$total+=31;
case 10:
$total+=30;
case 9:
$total+=31;
case 8:
$total+=31;
case 7:
$total+=30;
case 6:
$total+=31;
case 5:
$total+=30;
case 4:
$total+=31;
case 3:
$total+=28;
case 2:
$total+=31;
}
#如果当年是闰年还要加一天
if ($year%4==0 and $month>2){
$total++;
}
#顺便算出当月1日星期几
$week=($total+$week)%7;
##############################
#用农历的天数累加来判断是否超过阳历的天数
$flag1=0;#判断跳出循环的条件
$j=0;
while ($j<=120){
$i=1;
while ($i<=13){
$mtotal+=$everymonth[$j][$i];
if ($mtotal>=$total){
$flag1=1;
break;
}
$i++;
}
if ($flag1==1) break;
$j++;
}
##############################
#计算所求月份1号的农历日期
$md=$everymonth[$j][$i]-($mtotal-$total);
#月头空开的天数
$k=$week;
#是否跨越一年
switch ($month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
$dd=31;
break;
case 4:
case 6:
case 9:
case 11:
$dd=30;
break;
case 2:
if ($year%4==0){
$dd=29;
}else{
$dd=28;
}
break;
}
#是否跨越一年
$ty=0;
if ((($everymonth[$j][0]<>0 and $i==13) or ($everymonth[$j][0]==0 and $i==12))
and $mtotal-$total<$dd) $ty=1;
?>
<html>
<head>
<title>世纪万年历</title>
<style type="text/css">
<!--
input { font-size:9pt;}
A:link {text-decoration: underline; font-size:9pt;color:000059}
A:visited {text-decoration: underline; font-size:9pt;color:000059}
A:active {text-decoration: none; font-size:9pt}
A:hover {text-decoration:underline;color:red}
body,table {font-size: 9pt}
tr,td{font-size:9pt}
-->
</style>
</head>
<body alink="#FF0000" link="#000099" vlink="#CC6600" topmargin="8" leftmargin="0" bgColor="#FFFFFF">
<?
//打印年月抬头
echo "<p align=\"center\"><font size=\"6\"><b>".$year."年".$month."月</b></font></p>\n";
if($ty==0)
{
echo "<p align=\"center\"><b><font size=\"4\">".$mten[$everymonth[$j][14]].$mtwelve[$everymonth[$j][15]]."年</font></b></p>";
}
else
{
echo "<p align=\"center\"><b><font size=\"4\">".$mten[$everymonth[$j][14]].$mtwelve[$everymonth[$j][15]]."/".$mten[$everymonth[$j+1][14]].$mtwelve[$everymonth[$j+1][15]]."年</font></b></p>";
}
?>
<center>
<table border="1" width="85%">
<tr>
<td align="center" bgcolor="#CCCCCC"><font color="#FF0000"><b>星期日</b></font></td>
<td width="14%" align="center" bgcolor="#CCCCCC"><b>星期一</b></td>
<td width="14%" align="center" bgcolor="#CCCCCC"><b>星期二</b></td>
<td width="14%" align="center" bgcolor="#CCCCCC"><b>星期三</b></td>
<td width="14%" align="center" bgcolor="#CCCCCC"><b>星期四</b></td>
<td width="14%" align="center" bgcolor="#CCCCCC"><b>星期五</b></td>
<td width="14%" align="center" bgcolor="#CCCCCC"><b>星期六</b></td>
</tr>
<?
$day=1;
$line=0;
while ($day<=$dd){
echo "<tr>\n";
for ($s=0;$s<=6;$s++){
if ($k<>0 or $day>$dd){
echo "<td width=\"14%\" align=\"center\"> </td>\n";
$k--;
}else{
//设置字符颜色
switch ($s){
case 1:
case 2:
case 3:
case 4:
case 5:
$color="#000000";
break;
case 0:
$color="#FF0000";
break;
case 6:
$color="#008000";
break;
}
#生成中文农历
if ($md==1){#1日打印月份
if ($everymonth[$j][0]<>0 and $everymonth[$j][0]<$i){
$mm=$i-1;
}else{
$mm=$i;
}
if ($i==$everymonth[$j][0]+1 and $everymonth[$j][0]<>0) $chi=$mmonth[0].$mmonth[$mm];#闰月
else $chi=$mmonth[$mm].$mmonth[13];
}else{
$chi=$mday[$md];
}
echo "<td width=\"14%\" align=\"center\"><font color=\"$color\"><b>$day </b> <b><font size=\"2\">$chi</font></b></font></td>\n";
$day++;
$md++;
if ($md>$everymonth[$j][$i]){
$md=1;
$i++;
}
if (($i>12 and $everymonth[$j][0]==0) or ($i>13 and $everymonth[$j][0]<>0)){
$i=1;
$j++;
}
}
}
echo "</tr>\n";
$line++;
}
?>
</table>
</center>
</div>
<?php
#补足空行
for ($l=1;$l<=(6-$line);$l++){
echo "<table border=\"0\" width=\"100%\">\n";
echo "<tr>\n";
echo "<td width=\"100%\"><font color=\"#CCFFFF\">a</font></td>\n";
echo "</tr>\n";
echo "</table>\n";
}
#打印上一月,下一月
$ly=$ny=$year;
$last=$month-1;
if ($last==0){
$last=12;
$ly--;
}
$next=$month+1;
if ($next==13){
$next=1;
$ny++;
}
if ($ly>=1901)
echo "<p align=\"center\"><a href=\"".$file."?year=".$ly."&month=".$last."\"><<上一个月</a> \n";
else
echo "<p align=\"center\">";
if ($ny<=2020)
echo "<a href=\"".$file."?year=".$ny."&month=".$next."\">下一个月>></a></p>\n";
?>
<?php
echo "<form method=\"POST\" action=\"".$file."\">\n";
?>
<p align="center"><font color="#000000">年份:</font><select size="1" name="year">
<option>2020</option>
<option>2019</option>
<option>2018</option>
<option>2017</option>
<option>2016</option>
<option>2015</option>
<option>2014</option>
<option>2013</option>
<option>2012</option>
<option>2011</option>
<option>2010</option>
<option>2009</option>
<option>2008</option>
<option>2007</option>
<option>2006</option>
<option>2005</option>
<option>2004</option>
<option>2003</option>
<option>2002</option>
<option>2001</option>
<option selected>2000</option>
<option>1999</option>
<option>1998</option>
<option>1997</option>
<option>1996</option>
<option>1995</option>
<option>1994</option>
<option>1993</option>
<option>1992</option>
<option>1991</option>
<option>1990</option>
<option>1989</option>
<option>1988</option>
<option>1987</option>
<option>1986</option>
<option>1985</option>
<option>1984</option>
<option>1983</option>
<option>1982</option>
<option>1981</option>
<option>1980</option>
<option>1979</option>
<option>1978</option>
<option>1977</option>
<option>1976</option>
<option>1975</option>
<option>1974</option>
<option>1973</option>
<option>1972</option>
<option>1971</option>
<option>1970</option>
<option>1969</option>
<option>1968</option>
<option>1967</option>
<option>1966</option>
<option>1965</option>
<option>1964</option>
<option>1963</option>
<option>1962</option>
<option>1961</option>
<option>1960</option>
<option>1959</option>
<option>1958</option>
<option>1957</option>
<option>1956</option>
<option>1955</option>
<option>1954</option>
<option>1953</option>
<option>1952</option>
<option>1951</option>
<option>1950</option>
<option>1949</option>
<option>1948</option>
<option>1947</option>
<option>1946</option>
<option>1945</option>
<option>1944</option>
<option>1943</option>
<option>1942</option>
<option>1941</option>
<option>1940</option>
<option>1939</option>
<option>1938</option>
<option>1937</option>
<option>1936</option>
<option>1935</option>
<option>1934</option>
<option>1933</option>
<option>1932</option>
<option>1931</option>
<option>1930</option>
<option>1929</option>
<option>1928</option>
<option>1927</option>
<option>1926</option>
<option>1925</option>
<option>1924</option>
<option>1923</option>
<option>1922</option>
<option>1921</option>
<option>1920</option>
<option>1919</option>
<option>1918</option>
<option>1917</option>
<option>1916</option>
<option>1915</option>
<option>1914</option>
<option>1913</option>
<option>1912</option>
<option>1911</option>
<option>1910</option>
<option>1909</option>
<option>1908</option>
<option>1907</option>
<option>1906</option>
<option>1905</option>
<option>1904</option>
<option>1903</option>
<option>1902</option>
<option>1901</option>
</select><font color="#000000">年</font><font color="#000000">
月份:<select size="1" name="month">
<option selected>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
</select>月 </font><input type="submit" value="查询" name="B1"></p>
</form>
</body>
</html>