javascript 漂亮實用的萬年曆代碼

來源:互聯網
上載者:User
提示:您可以先修改部分代碼再運行

javascript 漂亮實用的萬年曆代碼<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title>漂亮實用的萬年曆</title><meta http-equiv="content-type" content="text/html;charset=gb2312"><!--把下面代碼加到<head>與</head>之間--><style type="text/css">body,td,.p1,.p2,.i{font-family:arial;}body{margin:6px 0 0 0;background-color:#fff;color:#000;}table{border:0;}#cal{width:434px;border:1px solid #c3d9ff;font-size:12px;margin:8px 0 0 15px;}#cal #top{height:29px;line-height:29px;background:#e7eef8;color:#003784;padding-left:70px;}#cal #top select{font-size:12px;}#cal #top input{padding:0;}#cal ul#wk{margin:0;padding:0;height:25px;}#cal ul#wk li{float:left;width:60px;text-align:center;line-height:25px;list-style:none;}#cal ul#wk li b{font-weight:normal;color:#c60b02;}#cal #cm{clear:left;border-top:1px solid #ddd;border-bottom:1px dotted #ddd;position:relative;}#cal #cm .cell{position:absolute;width:42px;height:36px;text-align:center;margin:0 0 0 9px;}#cal #cm .cell .so{font:bold 16px arial;}#cal #bm{text-align:right;height:24px;line-height:24px;padding:0 13px 0 0;}#cal #bm a{color:7977ce;}#cal #fd{display:none;position:absolute;border:1px solid #dddddf;background:#feffcd;padding:10px;line-height:21px;width:150px;}#cal #fd b{font-weight:normal;color:#c60a00;}</style><!--[if IE]><style>#cal #top{padding-top:4px}#cal #top input{width:65px}#cal #fd{width:170px}</style><![endif]--></head><body><!--把下面代碼加到<body>與</body>之間--><table cellpadding="0" cellspacing="0" id="1"> <tr> <td> <div id="cal"> <div id="top">公元 <select> </select> 年 <select> </select> 月 農曆<span></span>年 [ <span></span>年 ] <input type="button" value="回到今天" title="點擊後跳回今天" > </div> <ul id="wk"> <li>一</li> <li>二</li> <li>三</li> <li>四</li> <li>五</li> <li><b>六</b></li> <li><b>日</b></li> </ul> <div id="cm"></div> <div id="bm"></div> </div> </td> </tr></table><script type="text/javascript"><!--(function(){var S=navigator.userAgent.indexOf("MSIE")!=-1&&!window.opera;function M(C){return document.getElementById(C)} function R(C){return document.createElement(C)} var P=[19416,19168,42352,21717,53856,55632,91476,22176,39632,21970,19168,42422,42192,53840,119381,46400,54944,44450,38320,84343,18800,42160,46261,27216,27968,109396,11104,38256,21234,18800,25958,54432,59984,28309,23248,11104,100067,37600,116951,51536,54432,120998,46416,22176,107956,9680,37584,53938,43344,46423,27808,46416,86869,19872,42448,83315,21200,43432,59728,27296,44710,43856,19296,43748,42352,21088,62051,55632,23383,22176,38608,19925,19152,42192,54484,53840,54616,46400,46496,103846,38320,18864,43380,42160,45690,27216,27968,44870,43872,38256,19189,18800,25776,29859,59984,27480,21952,43872,38613,37600,51552,55636,54432,55888,30034,22176,43959,9680,37584,51893,43344,46240,47780,44368,21977,19360,42416,86390,21168,43312,31060,27296,44368,23378,19296,42726,42208,53856,60005,54576,23200,30371,38608,19415,19152,42192,118966,53840,54560,56645,46496,22224,21938,18864,42359,42160,43600,111189,27936,44448];var K="甲乙丙丁戊己庚辛壬癸";var J="子醜寅卯辰巳午未申酉戌亥";var O="鼠牛虎兔龍蛇馬羊猴雞狗豬";var L=["小寒","大寒","立春","雨水","驚蟄","春分","清明","穀雨","立夏","小滿","芒種","夏至","小暑","大暑","立秋","處暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"];var D=[0,21208,43467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758];var B="日一二三四五六七八九十";var H=["正","二","三","四","五","六","七","八","九","十","十一","臘"];var E="初十廿卅";var V={"0101":"*1元旦節","0214":"情人節","0305":"學雷鋒紀念日","0308":"婦女節","0312":"植樹節","0315":"消費者權益日","0401":"愚人節","0501":"*1勞動節","0504":"青年節","0601":"國際兒童節","0701":"中國誕辰","0801":"建軍節","0910":"中國教師節","1001":"*3國慶節","1224":"平安夜","1225":"聖誕節"} ;var T={"0101":"*2春節","0115":"元宵節","0505":"*1端午節","0815":"*1中秋節","0909":"重陽節","1208":"臘八節","0100":"除夕"} ;function U(Y){function c(j,i){var h=new Date((31556925974.7*(j-1900)+D[i]*60000)+Date.UTC(1900,0,6,2,5));return(h.getUTCDate())} function d(k){var h,j=348;for(h=32768;h>8;h>>=1){j+=(P[k-1900]&h)?1:0} return(j+b(k))} function a(h){return(K.charAt(h%10)+J.charAt(h%12))} function b(h){if(g(h)){return((P[h-1900]&65536)?30:29)} else{return(0)} } function g(h){return(P[h-1900]&15)} function e(i,h){return((P[i-1900]&(65536>>h))?30:29)} function C(m){var k,j=0,h=0;var l=new Date(1900,0,31);var n=(m-l)/86400000;this.dayCyl=n+40;this.monCyl=14;for(k=1900;k<2050&&n>0;k++){h=d(k);n-=h;this.monCyl+=12} if(n<0){n+=h;k--;this.monCyl-=12} this.year=k;this.yearCyl=k-1864;j=g(k);this.isLeap=false;for(k=1;k<13&&n>0;k++){if(j>0&&k==(j+1)&&this.isLeap==false){--k;this.isLeap=true;h=b(this.year)} else{h=e(this.year,k)} if(this.isLeap==true&&k==(j+1)){this.isLeap=false} n-=h;if(this.isLeap==false){this.monCyl++} } if(n==0&&j>0&&k==j+1){if(this.isLeap){this.isLeap=false} else{this.isLeap=true;--k;--this.monCyl} } if(n<0){n+=h;--k;--this.monCyl} this.month=k;this.day=n+1} function G(h){return h<10?"0"+h:h} function f(i,j){var h=i;return j.replace(/dd?d?d?|MM?M?M?|yy?y?y?/g,function(k){switch(k){case"yyyy":var l="000"+h.getFullYear();return l.substring(l.length-4);case"dd":return G(h.getDate());case"d":return h.getDate().toString();case"MM":return G((h.getMonth()+1));case"M":return h.getMonth()+1} } )} function Z(i,h){var j;switch(i,h){case 10:j="初十";break;case 20:j="二十";break;case 30:j="三十";break;default:j=E.charAt(Math.floor(h/10));j+=B.charAt(h%10)} return(j)} this.date=Y;this.isToday=false;this.isRestDay=false;this.solarYear=f(Y,"yyyy");this.solarMonth=f(Y,"M");this.solarDate=f(Y,"d");this.solarWeekDay=Y.getDay();this.solarWeekDayInChinese="星期"+B.charAt(this.solarWeekDay);var X=new C(Y);this.lunarYear=X.year;this.shengxiao=O.charAt((this.lunarYear-4)%12);this.lunarMonth=X.month;this.lunarIsLeapMonth=X.isLeap;this.lunarMonthInChinese=this.lunarIsLeapMonth?"閏"+H[X.month-1]:H[X.month-1];this.lunarDate=X.day;this.showInLunar=this.lunarDateInChinese=Z(this.lunarMonth,this.lunarDate);if(this.lunarDate==1){this.showInLunar=this.lunarMonthInChinese+"月"} this.ganzhiYear=a(X.yearCyl);this.ganzhiMonth=a(X.monCyl);this.ganzhiDate=a(X.dayCyl++);this.jieqi="";this.restDays=0;if(c(this.solarYear,(this.solarMonth-1)*2)==f(Y,"d")){this.showInLunar=this.jieqi=L[(this.solarMonth-1)*2]} if(c(this.solarYear,(this.solarMonth-1)*2+1)==f(Y,"d")){this.showInLunar=this.jieqi=L[(this.solarMonth-1)*2+1]} if(this.showInLunar=="清明"){this.showInLunar="清明節";this.restDays=1} this.solarFestival=V[f(Y,"MM")+f(Y,"dd")];if(typeof this.solarFestival=="undefined"){this.solarFestival=""} else{if(/*(d)/.test(this.solarFestival)){this.restDays=parseInt(RegExp.$1);this.solarFestival=this.solarFestival.replace(/*d/,"")} } this.showInLunar=(this.solarFestival=="")?this.showInLunar:this.solarFestival;this.lunarFestival=T[this.lunarIsLeapMonth?"00":G(this.lunarMonth)+G(this.lunarDate)];if(typeof this.lunarFestival=="undefined"){this.lunarFestival=""} else{if(/*(d)/.test(this.lunarFestival)){this.restDays=(this.restDays>parseInt(RegExp.$1))?this.restDays:parseInt(RegExp.$1);this.lunarFestival=this.lunarFestival.replace(/*d/,"")} } if(this.lunarMonth==12&&this.lunarDate==e(this.lunarYear,12)){this.lunarFestival=T["0100"];this.restDays=1} this.showInLunar=(this.lunarFestival=="")?this.showInLunar:this.lunarFestival;this.showInLunar=(this.showInLunar.length>4)?this.showInLunar.substr(0,2)+"...":this.showInLunar} var Q=(function(){var X={} ;X.lines=0;X.dateArray=new Array(42);function Y(a){return(((a%4===0)&&(a%100!==0))||(a%400===0))} function G(a,b){return[31,(Y(a)?29:28),31,30,31,30,31,31,30,31,30,31][b]} function C(a,b){a.setDate(a.getDate()+b);return a} function Z(a){var f=0;var c=new U(new Date(a.solarYear,a.solarMonth-1,1));var d=(c.solarWeekDay-1==-1)?6:c.solarWeekDay-1;X.lines=Math.ceil((d+G(a.solarYear,a.solarMonth-1))/7);for(var e=0;e<X.dateArray.length;e++){if(c.restDays!=0){f=c.restDays} if(f>0){c.isRest=true} if(d-->0||c.solarMonth!=a.solarMonth){X.dateArray[e]=null;continue} var b=new U(new Date());if(c.solarYear==b.solarYear&&c.solarMonth==b.solarMonth&&c.solarDate==b.solarDate){c.isToday=true} X.dateArray[e]=c;c=new U(C(c.date,1));f--} } return{init:function(a){Z(a)} ,getJson:function(){return X} } } )();var W=(function(){var C=M("top").getElementsByTagName("SELECT")[0];var X=M("top").getElementsByTagName("SELECT")[1];var G=M("top").getElementsByTagName("SPAN")[0];var c=M("top").getElementsByTagName("SPAN")[1];var Y=M("top").getElementsByTagName("INPUT")[0];function a(g){G.innerHTML=g.ganzhiYear;c.innerHTML=g.shengxiao} function b(g){C[g.solarYear-1901].selected=true;X[g.solarMonth-1].selected=true} function f(){var j=C.value;var g=X.value;var i=new U(new Date(j,g-1,1));Q.init(i);N.draw();if(this==C){i=new U(new Date(j,3,1));G.innerHTML=i.ganzhiYear;c.innerHTML=i.shengxiao} var h=new U(new Date());Y.style.visibility=(j==h.solarYear&&g==h.solarMonth)?"hidden":"visible"} function Z(){var g=new U(new Date());a(g);b(g);Q.init(g);N.draw();Y.style.visibility="hidden"} function d(k,g){for(var j=1901;j<2050;j++){var h=R("OPTION");h.value=j;h.innerHTML=j;if(j==k){h.selected="selected"} C.appendChild(h)} for(var j=1;j<13;j++){var h=R("OPTION");h.value=j;h.innerHTML=j;if(j==g){h.selected="selected"} X.appendChild(h)} C.onchange=f;X.onchange=f} function e(g){d(g.solarYear,g.solarMonth);G.innerHTML=g.ganzhiYear;c.innerHTML=g.shengxiao;Y.onclick=Z;Y.style.visibility="hidden"} return{init:function(g){e(g)} ,reset:function(g){b(g)} } } )();var N=(function(){function C(){var Z=Q.getJson();var c=Z.dateArray;M("cm").style.height=Z.lines*38+2+"px";M("cm").innerHTML="";for(var a=0;a<c.length;a++){if(c[a]==null){continue} var X=R("DIV");if(c[a].isToday){X.style.border="1px solid #a5b9da";X.style.background="#c1d9ff"} X.className="cell";X.style.left=(a%7)*60+"px";X.style.top=Math.floor(a/7)*38+2+"px";var b=R("DIV");b.className="so";b.style.color=((a%7)>4||c[a].isRest)?"#c60b02":"#313131";b.innerHTML=c[a].solarDate;X.appendChild(b);var Y=R("DIV");Y.style.color="#666";Y.innerHTML=c[a].showInLunar;X.appendChild(Y);X.onmouseover=(function(d){return function(f){F.show({dateIndex:d,cell:this} )} } )(a);X.onmouseout=function(){F.hide()} ;M("cm").appendChild(X)} var G=R("DIV");G.id="fd";M("cm").appendChild(G);F.init(G)} return{draw:function(G){C(G)} } } )();var F=(function(){var C;function Y(e,c){if(arguments.length>1){var b=/([.*+?^=!:${}()|[]/\])/g,Z="{".replace(b,"\$1"),d="}".replace(b,"\$1");var a=new RegExp("#"+Z+"([^"+Z+d+"]+)"+d,"g");if(typeof (c)=="object"){return e.replace(a,function(f,h){var g=c[h];return typeof (g)=="undefined"?"":g} )} } return e} function G(b){var a=Q.getJson().dateArray[b.dateIndex];var Z=b.cell;var c="#{solarYear} 年 #{solarMonth} 月 #{solarDate} 日 #{solarWeekDayInChinese}";c+="<br><b>農曆 #{lunarMonthInChinese}月#{lunarDateInChinese}</b>";c+="<br>#{ganzhiYear}年 #{ganzhiMonth}月 #{ganzhiDate}日";if(a.solarFestival!=""||a.lunarFestival!=""||a.jieqi!=""){c+="<br><b>#{lunarFestival} #{solarFestival} #{jieqi}</b>"} C.innerHTML=Y(c,a);C.style.top=Z.offsetTop+Z.offsetHeight-5+"px";C.style.left=Z.offsetLeft+Z.offsetWidth-5+"px";C.style.display="block"} function X(){C.style.display="none"} return{show:function(Z){G(Z)} ,hide:function(){X()} ,init:function(Z){C=Z} } } )();var A=new U(new Date());if(S){window.attachEvent("onload",function(){W.reset(A)} )} W.init(A);Q.init(A);N.draw();} )();//--></script></body></html>
提示:您可以先修改部分代碼再運行
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.