此萬年歷程序是在網(wǎng)站找到的………………加一點(diǎn)點(diǎn)改動(dòng)!供大家參考
第一個(gè)文件保存為文件
萬年歷.asp
<html> <head> <title>soul studio中國(guó)網(wǎng)絡(luò)論壇在線(靈魂工作室)</title> <meta name="generator" content="soul studio"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="content-type" content="text/html; charset=gb2312"> <link rel=stylesheet type="text/css" href="http://www.8asp.com/default<% =session("skin_number")%>.css"> <script LANGUAGE="JavaScript"> function openWindow(theURL,winName,features) { if (winName.window) winName.focus; popupWin = window.open(theURL,winName,features) popupWin.focus; } </script> </head>
<body leftmargin=0 topmargin=0> <TABLE cellpadding=0 cellspacing=0 class='topTD' width='100%'> <tr valign=absmiddle> <td style="{padding:0px;}" width="21%"><A href='default.asp'><img src=http://cfan.net.cn/info/"http://8asp.com/images/img/logo.gif" width=170 height=49 border=0 alt="ASP網(wǎng)絡(luò)聯(lián)盟(soul studio)" align="absmiddle"></A></td> <td style="{text-align:center;vertical-align:middle;}" width="78%" background="/article/UploadPic/2006719133037660.gif"></td> <td style="{text-align:right;vertical-align:middle;}" width="1%"> </td> </tr> </TABLE> <TABLE cellpadding=0 cellspacing=0 width='100%'> <tr valign=top> <td style="{padding:0px;}"><img src=http://cfan.net.cn/info/"http://8asp.com/images/pix.gif" width=640 height=1 border=0></td> </tr> </TABLE> <p><script language="JavaScript"> <!-- function MM_reloadPage(init) { //reloads the window if Nav4 resized if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); } MM_reloadPage(true);
function MM_findObj(n, d) { //v4.0 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && document.getElementById) x=document.getElementById(n); return x; } function MM_showHideLayers() { //v3.0 var i,p,v,obj,args=MM_showHideLayers.arguments; for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2]; if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; } obj.visibility=v; } }
// --> </script>
<table class='menuTable' > <tr> <td class='menuTD' onmouseover="this.className='menuTDover'" onmouseout="this.className='menuTD'" align="center" width="7%"> <a class=menuFont href="default.asp">主頁</a> </td> <td class='menuTD' onmouseover="MM_showHideLayers('Layer1','','show')" onmouseout="MM_showHideLayers('Layer1','','hide')" align="center" width="10%" > <div id="menu2" style="position:absolute; width:13px; height:15px; z-index:1; visibility: hidden"> <div id="Layer1" style=" Filter:alpha(opacity=85);position:absolute; width:82px; height:80px; z-index:5; left: -29px; top: 11px" onMouseOver="MM_showHideLayers('Layer1','','show')" onMouseOut="MM_showHideLayers('Layer1','','hide')"> <br> <table width="80" border="0" cellspacing="0" cellpadding="0" class='DataTD'> <tr> <td align="center" onmouseover="this.className='top2TD'" onmouseout="this.className='DataTD'" style="{padding:2px}" ><a href='<% =page_name%>?skin_number=0' style='{color:#000000}' >標(biāo)準(zhǔn)頁面</a> </td> </tr> <tr> <td align="center" onmouseover="this.className='top2TD'" onmouseout="this.className='DataTD'" style="{padding:2px}" > <a href='<% =page_name%>?skin_number=1' style='{color:#000000}' >晶瑩紫水晶</a> </td> </tr> <tr> <td align="center" onmouseover="this.className='top2TD'" onmouseout="this.className='DataTD'" style="{padding:2px}" ><a href='<% =page_name%>?skin_number=2' style='{color:#000000}' >青青河邊草</a></td> </tr> <tr> <td align="center" onmouseover="this.className='top2TD'" onmouseout="this.className='DataTD'" style="{padding:2px}" ><a href='<% =page_name%>?skin_number=3' style='{color:#000000}' >頁面三</a> </td> </tr> <tr> <td align="center" onmouseover="this.className='top2TD'" onmouseout="this.className='DataTD'" style="{padding:2px}" ><a href='<% =page_name%>?skin_number=4' style='{color:#000000}' >頁面4</a></td> </tr> </div> </div> <a class=menuFont href="#">風(fēng)格</a> </td> <td class='menuTD' align="center" width="7%" > <a class=menuFont href="login.asp?action=logout">登陸</a> </td> <td class='menuTD' align="center" width="7%"'> <a class=menuFont href="#">管理</a> </td> <td class='menuTD' align="center" width="7%" > <a class=menuFont href="#">鏈接</a> </td> <td class='menuTD' align="center" width="6%" > <a class=menuFont href="http://8asp.com/forums.asp">論壇</a></td> <td class='menuTD' align="center" width="7%" > <a class=menuFont href="content.asp?contenttypeid=2">文章</a> </td> <td class='menuTD' nowrap align="center" width="17%"> <a class=menuFont href="submit.asp?CatId=<% =request("CatId")%>">網(wǎng)絡(luò)論壇聯(lián)盟</a> </td> <form action="goto.asp" method="get" > <td class='menuTD' width='32%' style="{text-align:right;}"> <% if isnull(gotourl) then gotourl = ""%> <% if session("accesslevel") >= 3 then%> <% elseif session("accesslevel") = 2 then%> <% else%> <% =now%> <% end if%> </td> </form> </tr> </p> <p> <script type='text/javascript' src='萬年歷.js'></script> <STYLE>.todyaColor { BACKGROUND-COLOR: aqua } </STYLE> </p> <META content="MSHTML 5.50.4522.1800" name=GENERATOR></HEAD> <BODY onload=initialize() onunload=terminate()> <p> </p> <p> <SCRIPT language=JavaScript><!-- if(navigator.appName == "Netscape" || parseInt(navigator.appVersion) < 4) document.write("<h1>你的瀏覽器無法執(zhí)行此程序。</h1>此程序需在 IE4 以后的版本才能執(zhí)行!!") //--></SCRIPT> </p> <DIV id=detail style="Z-INDEX: 3; FILTER: shadow(color=#333333,direction=135); WIDTH: 140px; POSITION: absolute; HEIGHT: 120px"></DIV> <CENTER> <TABLE border=0> <TBODY> <TR><!------------------------------ 世界時(shí)間 -----------------------------------> <FORM name=WorldClock> <TD vAlign=top align=middle width=240><FONT style="FONT-SIZE: 9pt" size=2>本地時(shí)間</FONT><BR><SPAN id=LocalTime style="FONT-SIZE: 11pt; COLOR: #000080; FONT-FAMILY: Arial">0000年0月0日( )午 00:00:00</SPAN> <P><SPAN id=City style="FONT-SIZE: 9pt; WIDTH: 150px; FONT-FAMILY: '新宋體'">中國(guó)</SPAN> <BR><SPAN id=GlobeTime style="FONT-SIZE: 11pt; COLOR: #000080; FONT-FAMILY: Arial">0000年0月0日( )午 00:00:00</SPAN><BR> <TABLE style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings"> <TBODY> <TR> <TD align=middle>Ú <DIV id=map style="FILTER: Light; OVERFLOW: hidden; WIDTH: 240px; HEIGHT: 120px; BACKGROUND-COLOR: mediumblue"><FONT id=world style="FONT-SIZE: 185px; LEFT: 0px; COLOR: green; FONT-FAMILY: Webdings; POSITION: relative; TOP: -26px"></FONT> </DIV>Ù</TD></TR></TBODY></TABLE><BR><SELECT style="FONT: 9pt '宋體'; WIDTH: 240px; BACKGROUND-COLOR: #e0e0ff" onchange=chContinent() name=continentMenu></SELECT><BR><SELECT style="FONT: 9pt '宋體'; WIDTH: 240px; BACKGROUND-COLOR: #e0e0ff" onchange=chCountry() name=countryMenu></SELECT> </TD> </FORM><!------------------------------ 萬年歷 -----------------------------------> <FORM name=CLD> <TD align=middle> <DIV style="Z-INDEX: -1; POSITION: absolute; TOP: 108px; left: 168px"><FONT id=YMBG style="FONT-SIZE: 100pt; COLOR: #f0f0f0; FONT-FAMILY: 'Arial Black'"> 0000<BR> JUN</FONT> </DIV> <TABLE border=0> <TBODY> <TR> <TD bgColor=#000080 colSpan=7><FONT style="FONT-SIZE: 9pt" color=#ffffff size=2>公元<SELECT style="FONT-SIZE: 9pt" onchange=changeCld() name=SY> <SCRIPT language=JavaScript><!-- for(i=1900;i<2101;i++) document.write('<option>'+i) //--></SCRIPT> </SELECT>年<SELECT style="FONT-SIZE: 9pt" onchange=changeCld() name=SM> <SCRIPT language=JavaScript><!-- for(i=1;i<13;i++) document.write('<option>'+i) //--></SCRIPT> </SELECT>月</FONT> <FONT id=GZ face=標(biāo)楷體 color=#ffffff size=4></FONT><BR></TD></TR> <TR align=middle bgColor=#e0e0e0> <TD width=54>日</TD> <TD width=54>一</TD> <TD width=54>二</TD> <TD width=50>三</TD> <TD width=54>四</TD> <TD width=54>五</TD> <TD width=54>六</TD></TR> <SCRIPT language=JavaScript><!-- var gNum, color1, color2;
// 星期六顏色 switch (conWeekend) { case 1: color1 = 'black'; color2 = color1; break; case 2: color1 = 'green'; color2 = color1; break; case 3: color1 = 'red'; color2 = color1; break; default : color1 = 'green'; color2 = 'red'; }
for(i=0;i<6;i++) { document.write('<tr align=center>') for(j=0;j<7;j++) { gNum = i*7+j document.write('<td id="GD' + gNum +'" onMouseOver="mOvr(' + gNum +')" onMouseOut="mOut()"><font id="SD' + gNum +'" size=5 face="Arial Black"') if(j == 0) document.write(' color=red') if(j == 6) { if(i%2==1) document.write(' color='+color2) else document.write(' color='+color1) } document.write(' TITLE=""> </font><br><font id="LD' + gNum + '" size=2 style="font-size:9pt"> </font></td>') } document.write('</tr>') } //--></SCRIPT> </TBODY></TABLE></TD> <TD vAlign=top align=middle width=40><BR><BR><BR>年<BR><BUTTON style="FONT-SIZE: 9pt" onclick="pushBtm('YD')"><B>↑</B></BUTTON><BR><BUTTON style="FONT-SIZE: 9pt" onclick="pushBtm('YU')"><B>↓</B></BUTTON> <P>月<BR><BUTTON style="FONT-SIZE: 9pt" onclick="pushBtm('MD')"><B>↑</B></BUTTON><BR><BUTTON style="FONT-SIZE: 9pt" onclick="pushBtm('MU')"><B>↓</B></BUTTON> <P><BUTTON style="FONT-SIZE: 9pt" onclick="pushBtm('')">本<BR>月</BUTTON> <P></P></TD></FORM></TR></TBODY></TABLE><FONT style="FONT-SIZE: 9pt" color=#ffffff> </FONT> <div align=center> <p> <p> <script src="http://www.8asp.com/top/Counter.asp?Style=1"></script> <p>廣告服務(wù) | 關(guān)于我們 | 版權(quán)說明 | 合作伙伴 | 聯(lián)系我們 <hr> <p></p> <p>Copyright ©2002-2003本站所有程序由<a href='default.asp' target='_new'>firebird</a><a target='_new'></a> 獨(dú)立完成 在線QQ:178622550</p> <p>本站于2002年12月1日正式成立<a href='default.asp' target='_new'>soul studio</a><a target='_new'></a>靈魂工作室,成員(firebird、dodo、程式浪人)</p> </div> <script> document.write("<DIV id=yuzi style='right:16px;POSITION:absolute;TOP:1px;'><a href=http://www.8asp.com/guestbook/ly.asp?username=8asp target=_blank title='【無窗口式留言薄】此個(gè)性留言本為可申請(qǐng)版本。采用彈出無邊框窗口;全個(gè)性的界面'><img border=0 -src='/article/UploadPic/2006719133039957.gif'></a></div>"); lastScrollY=0; function heartBeat(){ diffY=document.body.scrollTop; percent=.1*(diffY-lastScrollY); if(percent>0)percent=Math.ceil(percent); else percent=Math.floor(percent); document.all.yuzi.style.pixelTop+=percent; lastScrollY=lastScrollY+percent; } window.setInterval("heartBeat()",1); </script> <BR> </CENTER></BODY></HTML> <SCRIPT language=JavaScript> if (document.all) document.body.onmousedown=new Function("if (event.button==2||event.button==3)window.external.addFavorite('http://www.8asp.com','中華網(wǎng)絡(luò)聯(lián)盟')") </SCRIPT>
將下面保存文件名為如下
萬年歷.js
<!-- /***************************************************************************** ASP網(wǎng)絡(luò)聯(lián)盟 http://www.8asp.com Soul studio工作室(firebird 、dodo) *****************************************************************************/
var conWeekend = 3; // 周末顏色顯示: 1=黑色, 2=綠色, 3=紅色, 4=隔周休
/***************************************************************************** 日期資料 *****************************************************************************/
var lunarInfo=new Array( 0x4bd8,0x4ae0,0xa570,0x54d5,0xd260,0xd950,0x5554,0x56af,0x9ad0,0x55d2, 0x4ae0,0xa5b6,0xa4d0,0xd250,0xd295,0xb54f,0xd6a0,0xada2,0x95b0,0x4977, 0x497f,0xa4b0,0xb4b5,0x6a50,0x6d40,0xab54,0x2b6f,0x9570,0x52f2,0x4970, 0x6566,0xd4a0,0xea50,0x6a95,0x5adf,0x2b60,0x86e3,0x92ef,0xc8d7,0xc95f, 0xd4a0,0xd8a6,0xb55f,0x56a0,0xa5b4,0x25df,0x92d0,0xd2b2,0xa950,0xb557, 0x6ca0,0xb550,0x5355,0x4daf,0xa5b0,0x4573,0x52bf,0xa9a8,0xe950,0x6aa0, 0xaea6,0xab50,0x4b60,0xaae4,0xa570,0x5260,0xf263,0xd950,0x5b57,0x56a0, 0x96d0,0x4dd5,0x4ad0,0xa4d0,0xd4d4,0xd250,0xd558,0xb540,0xb6a0,0x95a6, 0x95bf,0x49b0,0xa974,0xa4b0,0xb27a,0x6a50,0x6d40,0xaf46,0xab60,0x9570, 0x4af5,0x4970,0x64b0,0x74a3,0xea50,0x6b58,0x5ac0,0xab60,0x96d5,0x92e0, 0xc960,0xd954,0xd4a0,0xda50,0x7552,0x56a0,0xabb7,0x25d0,0x92d0,0xcab5, 0xa950,0xb4a0,0xbaa4,0xad50,0x55d9,0x4ba0,0xa5b0,0x5176,0x52bf,0xa930, 0x7954,0x6aa0,0xad50,0x5b52,0x4b60,0xa6e6,0xa4e0,0xd260,0xea65,0xd530, 0x5aa0,0x76a3,0x96d0,0x4afb,0x4ad0,0xa4d0,0xd0b6,0xd25f,0xd520,0xdd45, 0xb5a0,0x56d0,0x55b2,0x49b0,0xa577,0xa4b0,0xaa50,0xb255,0x6d2f,0xada0, 0x4b63,0x937f,0x49f8,0x4970,0x64b0,0x68a6,0xea5f,0x6b20,0xa6c4,0xaaef, 0x92e0,0xd2e3,0xc960,0xd557,0xd4a0,0xda50,0x5d55,0x56a0,0xa6d0,0x55d4, 0x52d0,0xa9b8,0xa950,0xb4a0,0xb6a6,0xad50,0x55a0,0xaba4,0xa5b0,0x52b0, 0xb273,0x6930,0x7337,0x6aa0,0xad50,0x4b55,0x4b6f,0xa570,0x54e4,0xd260, 0xe968,0xd520,0xdaa0,0x6aa6,0x56df,0x4ae0,0xa9d4,0xa4d0,0xd150,0xf252, 0xd520);
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("鼠","牛","虎","兔","龍","蛇","馬","羊","猴","雞","狗","豬"); 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");
//公歷節(jié)日 *表示放假日 var sFtv = new Array( "0101*新年元旦", "0202 世界濕地日", "0207 國(guó)際聲援南非日", "0210 國(guó)際氣象節(jié)", "0214 情人節(jié)", "0301 國(guó)際海豹日", "0303 全國(guó)愛耳日", "0308 國(guó)際婦女節(jié)", "0312 植樹節(jié) 孫中山逝世紀(jì)念日", "0314 國(guó)際警察日", "0315 國(guó)際消費(fèi)者權(quán)益日", "0317 中國(guó)國(guó)醫(yī)節(jié) 國(guó)際航海日", "0321 世界森林日 消除種族歧視國(guó)際日", "0321 世界兒歌日", "0322 世界水日", "0323 世界氣象日", "0324 世界防治結(jié)核病日", "0325 全國(guó)中小學(xué)生安全教育日", "0330 巴勒斯坦國(guó)土日", "0401 愚人節(jié) 全國(guó)愛國(guó)衛(wèi)生運(yùn)動(dòng)月(四月) 稅收宣傳月(四月)", "0407 世界衛(wèi)生日", "0422 世界地球日", "0423 世界圖書和版權(quán)日", "0424 亞非新聞工作者日", "0501 國(guó)際勞動(dòng)節(jié)", "0504 中國(guó)五四青年節(jié)", "0505 碘缺乏病防治日", "0508 世界紅十字日", "0512 國(guó)際護(hù)士節(jié)", "0515 國(guó)際家庭日", "0517 世界電信日", "0518 國(guó)際博物館日", "0520 全國(guó)學(xué)生營(yíng)養(yǎng)日", "0523 國(guó)際牛奶日", "0531 世界無煙日", "0601 國(guó)際兒童節(jié)", "0605 世界環(huán)境日", "0606 全國(guó)愛眼日", "0617 防治荒漠化和干旱日", "0623 國(guó)際奧林匹克日", "0625 全國(guó)土地日", "0626 國(guó)際反毒品日", "0701 中國(guó)共產(chǎn)黨建黨日 世界建筑日", "0702 國(guó)際體育記者日 精品推介站(http://www.21softs.com/)正式對(duì)外開放紀(jì)念日", "0707 中國(guó)人民抗日戰(zhàn)爭(zhēng)紀(jì)念日", "0711 世界人口日", "0730 非洲婦女日", "0801 中國(guó)建軍節(jié)", "0808 中國(guó)男子節(jié)(爸爸節(jié))", "0815 日本正式宣布無條件投降日", "0908 國(guó)際掃盲日 國(guó)際新聞工作者日", "0910 教師節(jié)", "0914 世界清潔地球日", "0916 國(guó)際臭氧層保護(hù)日", "0918 九·一八事變紀(jì)念日", "0920 國(guó)際愛牙日", "0927 世界旅游日", "1001*國(guó)慶節(jié) 世界音樂日 國(guó)際老人節(jié)", "1001 國(guó)際音樂日", "1002 國(guó)際和平與民主自由斗爭(zhēng)日", "1004 世界動(dòng)物日", "1008 全國(guó)高血壓日", "1008 世界視覺日", "1009 世界郵政日 萬國(guó)郵聯(lián)日", "1010 辛亥革命紀(jì)念日 世界精神衛(wèi)生日", "1013 世界保健日 國(guó)際教師節(jié)", "1014 世界標(biāo)準(zhǔn)日", "1015 國(guó)際盲人節(jié)(白手杖節(jié))", "1016 世界糧食日", "1017 世界消除貧困日", "1022 世界傳統(tǒng)醫(yī)藥日", "1024 聯(lián)合國(guó)日 世界發(fā)展信息日", "1031 世界勤儉日", "1107 十月社會(huì)主義革命紀(jì)念日", "1108 中國(guó)記者日", "1109 全國(guó)消防安全宣傳教育日", "1110 世界青年節(jié)", "1111 國(guó)際科學(xué)與和平周(本日所屬的一周)", "1112 孫中山誕辰紀(jì)念日", "1114 世界糖尿病日", "1117 國(guó)際大學(xué)生節(jié) 世界學(xué)生節(jié)", "1121 世界問候日 世界電視日", "1129 國(guó)際聲援巴勒斯坦人民國(guó)際日", "1201 世界艾滋病日", "1203 世界殘疾人日", "1205 國(guó)際經(jīng)濟(jì)和社會(huì)發(fā)展志愿人員日", "1208 國(guó)際兒童電視日", "1209 世界足球日", "1210 世界人權(quán)日", "1212 西安事變紀(jì)念日", "1213 南京大屠殺(1937年)紀(jì)念日!緊記血淚史!", "1221 國(guó)際籃球日", "1224 平安夜", "1225 圣誕節(jié)", "1229 國(guó)際生物多樣性日");
//某月的第幾個(gè)星期幾。 5,6,7,8 表示到數(shù)第 1,2,3,4 個(gè)星期幾 var wFtv = new Array( "0110 黑人日", "0150 世界麻風(fēng)日", //一月的最后一個(gè)星期日(月倒數(shù)第一個(gè)星期日) "0520 國(guó)際母親節(jié)", "0530 全國(guó)助殘日", "0630 父親節(jié)", "0911 勞動(dòng)節(jié)", "0932 國(guó)際和平日", "0940 國(guó)際聾人節(jié) 世界兒童日", "0950 世界海事日", "1011 國(guó)際住房日", "1013 國(guó)際減輕自然災(zāi)害日(減災(zāi)日)", "1144 感恩節(jié)");
//農(nóng)歷節(jié)日 var lFtv = new Array( "0101*春節(jié)", "0115 元宵節(jié)", "0202 龍?zhí)ь^節(jié)", "0323 媽祖生辰 (天上圣母誕辰)", "0505 端午節(jié)", "0707 七七中國(guó)情人節(jié)", "0815 中秋節(jié)", "0909 重陽節(jié)", "1208 臘八節(jié)", "1223 臘八節(jié)", "0100*除夕");
//世界時(shí)間資料 var timeData = { "Asia 亞洲": { //---------------------------------------------- "Brunei 文萊 ":["+0800","","斯里巴加灣市"], "Burma 緬甸 ":["+0630","","仰光"], "Cambodia 柬埔寨 ":["+0700","","金邊"], "China 中國(guó) ":["+0800","","北京、重慶、上海、天津"], "China(HK,Macau) 中國(guó) ":["+0800","","香港、澳門特區(qū)"], "China(TaiWan) 中國(guó) ":["+0800","","臺(tái)北、高雄"], "China(Urumchi) 中國(guó) ":["+0700","","烏魯木齊"], "Indonesia 印尼 ":["+0700","","雅加達(dá)"], "Japan 日本 ":["+0900","","東京、大阪、札幌"], "Korea 韓國(guó) ":["+0900","","漢城"], "Laos 老撾 ":["+0700","","萬象"], "Malaysia 馬來西亞":["+0800","","吉隆坡"], "Mongolia 蒙古 ":["+0800","03L03|09L03","烏蘭巴托、庫倫"], "Philippines 菲律賓 ":["+0800","04F53|10F53","馬尼拉"], "Russia(Anadyr) 俄羅斯 ":["+1300","03L03|10L03","阿納德爾河"], "Russia(Kamchatka) 俄羅斯 ":["+1200","03L03|10L03","堪察加半島"], "Russia(Magadan) 俄羅斯 ":["+1100","03L03|10L03","馬加丹"], "Russia(Vladivostok)俄羅斯 ":["+1000","03L03|10L03","符拉迪沃斯托克(海參崴)"], "Russia(Yakutsk) 俄羅斯 ":["+0900","03L03|10L03","雅庫茨克"], "Singapore 新加坡 ":["+0800","","新加坡"], "Thailand 泰國(guó) ":["+0700","","曼谷"], "Vietnam 越南 ":["+0700","","河內(nèi)"] }, "ME, India pen. 中東、印度半島": { //------------------------------------ "Afghanistan 阿富汗 ":["+0430","","喀布爾"], "Arab Emirates 阿拉伯聯(lián)合酋長(zhǎng)國(guó)":["+0400","","阿布扎比"], "Bahrain 巴林 ":["+0300","","麥納麥"], "Bangladesh 孟加拉 ":["+0600","","達(dá)卡"], "Bhutan 不丹 ":["+0600","","廷布"], "Cyprus 塞浦路斯":["+0200","","尼科西亞"], "Georgia 喬治亞 ":["+0500","","第比利斯"], "India 印度 ":["+0530","","新德里、孟買、加爾各答"], "Iran 伊朗 ":["+0330","04 13|10 13","德黑蘭"], "Iraq 伊拉克 ":["+0300","04 13|10 13","巴格達(dá)"], "Israel 以色列·巴勒斯坦":["+0200","04F53|09F53","耶路撒冷"], "Jordan 約旦 ":["+0200","","安曼"], "Kuwait 科威特 ":["+0300","","科威特城"], "Lebanon 黎巴嫩 ":["+0200","03L03|10L03","貝魯特"], "Maldives 馬爾代夫":["+0500","","馬累"], "Nepal 尼泊爾 ":["+0545","","加德滿都"], "Oman 阿曼 ":["+0400","","馬斯喀特"], "Pakistan 巴基斯坦":["+0500","","卡拉奇、伊斯蘭堡"], "Qatar 卡塔爾 ":["+0300","","多哈"], "Saudi Arabia 沙特阿拉伯":["+0300","","利雅得"], "Sri Lanka 斯里蘭卡":["+0600","","科倫坡"], "Syria 敘利亞 ":["+0200","04 13|10 13","大馬士革"], "Tajikistan 塔吉克斯坦":["+0500","","杜尚別"], "Turkey 土耳其 ":["+0200","","伊斯坦堡"], "Turkmenistan 土庫曼斯坦":["+0500","","阿什哈巴德"], "Uzbekistan 烏茲別克斯坦":["+0500","","塔什干"], "Yemen 也門 ":["+0300","","薩那"] }, "North Europe 北歐": { //---------------------------------------------- "Denmark 丹麥":["+0100","04F03|10L03","哥本哈根"], "Finland 芬蘭":["+0200","03L01|10L01","赫爾辛基"], "Iceland 冰島":["+0000","","雷克雅未克"], "Norwegian 挪威":["+0100","","奧斯陸"], "Sweden 瑞典":["+0100","03L01|10L01","斯德哥爾摩"] }, "Eastern Europe 中歐、東歐": { //---------------------------------------- "Armenia 亞美尼亞":["+0400","","埃里溫"], "Austria 奧地利 ":["+0100","03L01|10L01","維也納"], "Azerbaijan 阿塞拜疆":["+0400","","巴庫"], "Czech 捷克 ":["+0100","","布拉格"], "Estonia 愛沙尼亞":["+0200","","塔林"], "Germany 德國(guó) ":["+0100","03L01|10L01","柏林、波恩"], "Hungarian 匈牙利 ":["+0100","","布達(dá)佩斯"], "Kazakhstan(Astana) 哈薩克斯坦":["+0600","","阿斯塔納、阿拉木圖"], "Kazakhstan(Aqtobe) 哈薩克斯坦":["+0500","","阿克托別"], "Kazakhstan(Aqtau) 哈薩克斯坦":["+0400","","阿克圖"], "Kirghizia 吉爾吉斯":["+0500","","比斯凱克"], "Latvia 拉脫維亞":["+0200","","里加"], "Lithuania 立陶宛 ":["+0200","","維爾紐斯"], "Moldova 摩爾多瓦":["+0200","","基希納烏"], "Poland 波蘭 ":["+0100","","華沙"], "Rumania 羅馬尼亞":["+0200","","布加勒斯特"], "Russia(Moscow) 俄羅斯 ":["+0300","03L03|10L03","莫斯科"], "Russia(Volgograd) 俄羅斯 ":["+0300","03L03|10L03","伏爾加格勒"], "Slovakia 斯洛伐克":["+0100","","布拉迪斯拉發(fā)"], "Switzerland 瑞士 ":["+0100","","蘇黎世"], "Ukraine 烏克蘭 ":["+0200","","基輔"], "Ukraine(Simferopol)烏克蘭 ":["+0300","","辛菲羅波爾"], "Belarus 白俄羅斯":["+0200","03L03|10L03","明斯克"] }, "Western Europe 西歐": { //---------------------------------------------- "Belgium 比利時(shí) ":["+0100","03L01|10L01","布魯塞爾"], "France 法國(guó) ":["+0100","03L01|10L01","巴黎"], "Ireland 愛爾蘭 ":["+0000","03L01|10L01","都柏林"], "Monaco 摩納哥 ":["+0100","","摩納哥市"], "Netherlands 荷蘭 ":["+0100","03L01|10L01","阿姆斯特丹"], "Luxembourg 盧森堡 ":["+0100","03L01|10L01","盧森堡市"], "United Kingdom 英國(guó) ":["+0000","03L01|10L01","倫敦、愛丁堡"] }, "South Europe 南歐": { //------------------------------------------------ "Albania 阿爾巴尼亞":["+0100","","地拉那"], "Bulgaria 保加利亞":["+0200","","索菲亞"], "Greece 希臘 ":["+0200","03L01|10L01","雅典"], "Holy See 羅馬教廷":["+0100","","梵蒂岡"], "Italy 意大利 ":["+0100","03L01|10L01","羅馬"], "Malta 馬耳他 ":["+0100","","瓦萊塔"], "Portugal 葡萄牙 ":["+0000","03L01|10L01","里斯本"], "San Marino 圣馬利諾":["+0100","","圣馬利諾"], "Span 西班牙 ":["+0100","03L01|10L01","馬德里"], "Slovenia 斯洛文尼亞":["+0100","","盧布爾雅那"], "Yugoslavia 南斯拉夫(塞爾維亞)":["+0100","","貝爾格萊德"] }, "North America 北美洲": { //-------------------------------------------- "Canada(NST) 加拿大":["-0330","04F02|10L02","紐芬蘭、圣約翰、古斯灣"], "Canada(AST) 加拿大":["-0400","04F02|10L02","冰河灣、Pangnirtung"], "Canada(EST) 加拿大":["-0500","04F02|10L02","蒙特羅"], "Canada(CST) 加拿大":["-0600","04F02|10L02","雷迦納、雨河鎮(zhèn)、Swift Current"], "Canada(MST) 加拿大":["-0700","04F02|10L02","印奴維特港灣、埃德蒙頓、道森河"], "Canada(PST) 加拿大":["-0800","04F02|10L02","溫哥華"], "US(Eastern) 美國(guó)(東岸)":["-0500","04F02|10L02","華盛頓、紐約"], "US(Indiana) 美國(guó) ":["-0500","","印第安納"], "US(Central) 美國(guó)(中部)":["-0600","04F02|10L02","芝加哥"], "US(Mountain) 美國(guó)(山區(qū))":["-0700","04F02|10L02","丹佛"], "US(Arizona) 美國(guó) ":["-0700","","亞歷桑那"], "US(Pacific) 美國(guó)(西岸)":["-0800","04F02|10L02","舊金山、洛杉磯"], "US(Alaska) 美國(guó) ":["-0900","","阿拉斯加、朱諾"] }, "South America 中南美洲": { //------------------------------------------ "Antigua & Barbuda 安提瓜島及巴布達(dá)島":["-0400","","圣約翰"], "Argentina 阿根廷 ":["-0300","","布宜諾斯艾利斯"], "Bahamas 巴哈馬 ":["-0500","","拿騷"], "Barbados 巴巴多斯島":["-0400","","布里奇頓(橋鎮(zhèn))"], "Belize 貝里斯 ":["-0600","","貝里斯"], "Bolivia 玻利維亞":["-0400","","拉巴斯"], "Brazil(AST) 巴西 ":["-0500","10F03|02L03","Porto Acre"], "Brazil(EST) 巴西 ":["-0300","10F03|02L03","巴西利亞、里約熱內(nèi)盧"], "Brazil(FST) 巴西 ":["-0200","10F03|02L03","諾羅納"], "Brazil(WST) 巴西 ":["-0400","10F03|02L03","庫亞巴"], "Chilean 智利 ":["-0500","10F03|03F03","Hanga Roa"], "Chilean 智利 ":["-0300","10F03|03F03","圣地亞哥"], "Colombia 哥倫比亞":["-0500","","波哥大"], "Costa Rica 哥斯達(dá)黎加":["-0600","","圣何塞"], "Cuba 古巴 ":["-0500","04 13|10L03","哈瓦那"], "Dominican 多米尼加":["-0400","","圣多明各、羅梭"], "Ecuador 厄瓜多爾":["-0500","","基多"], "El Salvador 薩爾瓦多":["-0600","","圣薩爾瓦多"], "Falklands 福克蘭群島":["-0300","09F03|04F03","史丹利"], "Guatemala 危地馬拉":["-0600","","危地馬拉城"], "Haiti 海地 ":["-0500","","太子港"], "Honduras 洪都拉斯":["-0600","","特古西加爾巴"], "Jamaica 牙買加 ":["-0500","","金斯敦"], "Mexico(Mazatlan) 墨西哥 ":["-0700","","馬薩特蘭"], "Mexico(首都) 墨西哥 ":["-0600","","墨西哥城"], "Mexico(蒂華納) 墨西哥 ":["-0800","","蒂華納"], "Nicaragua 尼加拉瓜":["-0500","","馬那瓜"], "Panama 巴拿馬 ":["-0500","","巴拿馬市"], "Paraguay 巴拉圭 ":["-0400","10F03|02L03","亞松森"], "Peru 秘魯 ":["-0500","","利馬"], "Saint Kitts & Nevis 圣基茨和尼維斯":["-0400","","巴斯特爾(Basseterre)"], "St. Lucia 圣盧西亞":["-0400","","卡斯特里"], "St. Vincent & Grenadines 圣文森特和格林納丁斯":["-0400","","金斯敦"], "Suriname 蘇里南":["-0300","","帕拉馬里博(Paramaribo)"], "Trinidad & Tobago 特立尼達(dá)和多巴哥":["-0400","","西班牙港"], "Uruguay 烏拉圭 ":["-0300","","蒙得維的亞"], "Venezuela 委內(nèi)瑞拉":["-0400","","加拉加斯"] }, "Africa 非洲": { //---------------------------------------------- "Algeria 阿爾及利亞":["+0100","","阿爾及爾"], "Angola 安哥拉 ":["+0100","","羅安達(dá)"], "Benin 貝南 ":["+0100","","新港"], "Botswana 博茨瓦納":["+0200","","哈博羅內(nèi)"], "Burundi 布隆迪 ":["+0200","","布瓊布拉"], "Cameroon 喀麥隆 ":["+0100","","雅溫得"], "Cape Verde 佛德角 ":["-0100","","普拉亞"], "Central African 中非共和國(guó)":["+0100","","班吉"],
"Chad 乍得 ":["+0100","","恩賈梅納市"], "Congo 剛果(布)":["+0100","","布拉柴維爾"], "Djibouti 吉布提 ":["+0300","","吉布提"], "Egypt 埃及 ":["+0200","04L53|09L43","開羅"], "Equatorial Guinea 赤道幾內(nèi)亞":["+0100","","馬博托"], "Ethiopia 埃塞俄比亞":["+0300","","亞的斯亞貝巴"], "Gabon 加蓬 ":["+0100","","利伯維爾"], "Gambia 岡比亞 ":["+0000","","班珠爾"], "Ghana 加納 ":["+0000","","阿克拉"], "Guinea 幾內(nèi)亞 ":["+0000","","科納克里"], "Ivory Coast 象牙海岸":["+0000","","阿比讓、雅穆索戈"], "Kenya 肯尼亞 ":["+0300","","內(nèi)羅畢"], "Lesotho 萊索托 ":["+0200","","馬塞盧"], "Liberia 利比里亞":["+0000","","蒙羅維亞"], "Madagascar 馬達(dá)加斯加":["+0300","","塔那那利佛"], "Malawi 馬拉維 ":["+0200","","利隆圭"], "Mali 馬里 ":["+0000","","巴馬科"], "Mauritania 毛里塔尼亞":["+0000","","努瓦克肖特"], "Mauritius 毛里求斯":["+0400","","路易港"], "Morocco 摩洛哥 ":["+0000","","卡薩布蘭卡"], "Mozambique 莫桑比克":["+0200","","馬普托"], "Namibia 納米比亞":["+0200","09F03|04F03","溫得和克"], "Niger 尼日爾 ":["+0100","","尼亞美"], "Nigeria 尼日利亞":["+0100","","阿布賈"], "Rwanda 盧旺達(dá) ":["+0200","","基加利"], "Sao Tome 圣多美 ":["+0000","","圣多美"], "Senegal 塞內(nèi)加爾":["+0000","","達(dá)卡爾"], "Sierra Leone 獅子山國(guó)":["+0000","","自由城"], "Somalia 索馬里 ":["+0300","","摩加迪沙"], "South Africa 南非 ":["+0200","","開普敦、普利托里亞"], "Sudan 蘇丹 ":["+0200","","喀土穆"], "Tanzania 坦桑尼亞":["+0300","","達(dá)累斯薩拉姆"], "Togo 多哥 ":["+0000","","洛美隆"], "Tunisia 突尼斯 ":["+0100","","突尼斯市"], "Uganda 烏干達(dá) ":["+0300","","坎帕拉"], "Zaire 扎伊爾(剛果金) ":["+0100","","金沙薩"], "Zambia 贊比亞 ":["+0200","","盧薩卡"], "Zimbabwe 津巴布韋":["+0200","","哈拉雷"] }, "Oceania 大洋洲": { //---------------------------------------------- "American Samoa(US) 美屬薩摩亞(美)":["-1100","","帕果帕果港"], "Aus.(Adelaide) 澳大利亞 ":["+0930","10F03|03F03","阿得雷德"], "Aus.(Brisbane) 澳大利亞 ":["+1000","10F03|03F03","布里斯班"], "Aus.(Darwin) 澳大利亞 ":["+0930","10F03|03F03","達(dá)爾文"], "Aus.(Hobart) 澳大利亞 ":["+1000","10F03|03F03","荷伯特"], "Aus.(Perth) 澳大利亞 ":["+0800","10F03|03F03","佩思"], "Aus.(Sydney) 澳大利亞 ":["+1000","10F03|03F03","悉尼"], "Cook Islands(NZ) 庫克群島(新西蘭) ":["-1000","","阿瓦魯阿"], "Eniwetok 埃尼威托克島":["-1200","","埃尼威托克島"], "Fiji 斐濟(jì) ":["+1200","11F03|02L03","蘇瓦"], "Guam 關(guān)島 ":["+1000","","阿加尼亞"], "Hawaii(US) 夏威夷(美)":["-1000","","檀香山"], "Kiribati 基里巴斯 ":["+1100","","塔拉瓦"], //"Mariana Islands 塞班島 ":["","","塞班島"], "Marshall Is. 馬紹爾群島":["+1200","","馬朱羅"], "Micronesia 密克羅尼西亞聯(lián)邦":["+1000","","帕利基爾(Palikir)"], "Midway Is.(US) 中途島(美)":["-1100","","中途島"], "Nauru Rep. 瑙魯共和國(guó)":["+1200","","亞倫"], "New Calednia(FR) 新克里多尼亞(法)":["+1100","","努美阿"], "New Zealand 新西蘭 ":["+1200","10F03|04F63","奧克蘭"], "New Zealand(CHADT) 新西蘭 ":["+1245","10F03|04F63","惠靈頓"], "Niue(NZ) 紐埃(新) ":["-1100","","阿洛菲(Alofi)"], "Nor. Mariana Is. 北馬里亞納群島(美)":["+1000","","塞班島"], "Palau 帕勞群島(帛琉群島) ":["+0900","","科羅爾"], "Papua New Guinea 巴布亞新幾內(nèi)亞":["+1000","","莫爾斯比港"], "Pitcairn Is.(UK) 皮特克恩群島(英)":["-0830","","亞當(dāng)斯敦"], "Polynesia(FR) 玻利尼西亞(法)":["-1000","","巴比蒂、塔希提"], "Solomon Is. 所羅門群島":["+1100","","霍尼亞拉"], "Tahiti 塔希提 ":["-1000","","帕佩特"], "Tokelau(NZ) 托克勞群島(新)":["-1100","","努庫諾努、法考福、阿塔富"], "Tonga 湯加 ":["+1300","10F63|04F63","努庫阿洛法"], "Tuvalu 圖瓦盧 ":["+1200","","富納富提"], "Vanuatu 瓦努阿圖(新赫布里底群島)":["+1100","","維拉港"], "Western Samoa 西薩摩亞":["-1100","","阿皮亞"], "國(guó)際換日線 ":["-1200","","國(guó)際換日線"] } };
/***************************************************************************** 日期計(jì)算 *****************************************************************************/
//====================================== 返回農(nóng)歷 y年的總天數(shù) 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)); }
//====================================== 返回農(nóng)歷 y年閏月的天數(shù) function leapDays(y) { if(leapMonth(y)) return( (lunarInfo[y-1899]&0xf)==0xf? 30: 29); else return(0); }
//====================================== 返回農(nóng)歷 y年閏哪個(gè)月 1-12 , 沒閏返回 0 function leapMonth(y) { var lm = lunarInfo[y-1900] & 0xf; return(lm==0xf?0:lm); }
//====================================== 返回農(nóng)歷 y年m月的總天數(shù) function monthDays(y,m) { return( (lunarInfo[y-1900] & (0x10000>>m))? 30: 29 ); }
//====================================== 算出農(nóng)歷, 傳入日期控件, 返回農(nóng)歷日期控件 // 該控件屬性有 .year .month .day .isLeap function Lunar(objDate) {
var i, leap=0, temp=0; var offset = (Date.UTC(objDate.getFullYear(),objDate.getMonth(),objDate.getDate()) - Date.UTC(1900,0,31))/86400000;
for(i=1900; i<2100 && offset>0; i++) { temp=lYearDays(i); offset-=temp; }
if(offset<0) { offset+=temp; i--; }
this.year = i;
leap = leapMonth(i); //閏哪個(gè)月 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(offset==0 && leap>0 && i==leap+1) if(this.isLeap) { this.isLeap = false; } else { this.isLeap = true; --i; }
if(offset<0){ offset += temp; --i; }
this.month = i; this.day = offset + 1; }
//==============================返回公歷 y年某m+1月的天數(shù) 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.sYear = sYear; //公元年4位數(shù)字 this.sMonth = sMonth; //公元月數(shù)字 this.sDay = sDay; //公元日數(shù)字 this.week = week; //星期, 1個(gè)中文 //農(nóng)歷 this.lYear = lYear; //公元年4位數(shù)字 this.lMonth = lMonth; //農(nóng)歷月數(shù)字 this.lDay = lDay; //農(nóng)歷日數(shù)字 this.isLeap = isLeap; //是否為農(nóng)歷閏月? //八字 this.cYear = cYear; //年柱, 2個(gè)中文 this.cMonth = cMonth; //月柱, 2個(gè)中文 this.cDay = cDay; //日柱, 2個(gè)中文
this.color = '';
this.lunarFestival = ''; //農(nóng)歷節(jié)日 this.solarFestival = ''; //公歷節(jié)日 this.solarTerms = ''; //節(jié)氣 }
//===== 某年的第n個(gè)節(jié)氣為幾日(從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月) /* 功能說明: 返回整個(gè)月的日期資料控件
使用方式: OBJ = new calendar(年,零起算月);
OBJ.length 返回當(dāng)月最大日 OBJ.firstWeek 返回當(dāng)月一日星期
由 OBJ[日期].屬性名稱 即可取得各項(xiàng)值
OBJ[日期].isToday 返回是否為今日 true 或 false
其他 OBJ[日期] 屬性參見 calElement() 中的注解 */ function calendar(y,m) {
var sDObj, lDObj, lY, lM, lD=1, lL, lX=0, tmp1, tmp2, tmp3; var cY, cM, cD; //年柱,月柱,日柱 var lDPOS = new Array(3); var n = 0; var firstLM = 0;
sDObj = new Date(y,m,1,0,0,0,0); //當(dāng)月一日日期
this.length = solarDays(y,m); //公歷當(dāng)月天數(shù) this.firstWeek = sDObj.getDay(); //公歷當(dāng)月1日星期幾
////////年柱 1900年立春后為庚子年(60進(jìn)制36) if(m<2) cY=cyclical(y-1900+36-1); else cY=cyclical(y-1900+36); var term2=sTerm(y,2); //立春日期
////////月柱 1900年1月小寒以前為 丙子月(60進(jìn)制12) var firstNode = sTerm(y,m*2) //返回當(dāng)月「節(jié)」為幾日開始 cM = cyclical((y-1900)*12+m+12);
//當(dāng)月一日與 1900/1/1 相差天數(shù) //1900/1/1與 1970/1/1 相差25567日, 1900/1/1 日柱為甲戌日(60進(jìn)制10) var dayCyclical = Date.UTC(y,m,1,0,0,0,0)/86400000+25567+10;
for(var i=0;i<this.length;i++) {
if(lD>lX) { sDObj = new Date(y,m,i+1); //當(dāng)月一日日期 lDObj = new Lunar(sDObj); //農(nóng)歷 lY = lDObj.year; //農(nóng)歷年 lM = lDObj.month; //農(nóng)歷月 lD = lDObj.day; //農(nóng)歷日 lL = lDObj.isLeap; //農(nóng)歷是否閏月 lX = lL? leapDays(lY): monthDays(lY,lM); //農(nóng)歷當(dāng)月最后一天
if(n==0) firstLM = lM; lDPOS[n++] = i-lD+1; }
//依節(jié)氣調(diào)整二月分的年柱, 以立春為界 if(m==1 && (i+1)==term2) cY=cyclical(y-1900+36); //依節(jié)氣月柱, 以「節(jié)」為界 if((i+1)==firstNode) cM = cyclical((y-1900)*12+m+13); //日柱 cD = cyclical(dayCyclical+i);
//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, cY ,cM, cD ); }
//節(jié)氣 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 = 'red'; //清明顏色
//公歷節(jié)日 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'; }
//月周節(jié)日 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); if(tmp1<5) this[((this.firstWeek>tmp2)?7:0) + 7*(tmp1-1) + tmp2 - this.firstWeek].solarFestival += RegExp.$5 + ' '; else { tmp1 -= 5; tmp3 = (this.firstWeek+this.length-1)%7; //當(dāng)月最后一天星期? this[this.length - tmp3 - 7*tmp1 + tmp2 - (tmp2>tmp3?7:0) - 1 ].solarFestival += RegExp.$5 + ' '; } }
//農(nóng)歷節(jié)日 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].isLeap!=true) { this[tmp2].lunarFestival += RegExp.$4 + ' '; if(RegExp.$3=='*') this[tmp2].color = 'red'; } } }
//復(fù)活節(jié)只出現(xiàn)在3或4月 if(m==2 || m==3) { var estDay = new easter(y); if(m == estDay.m) this[estDay.d-1].solarFestival = this[estDay.d-1].solarFestival+' 復(fù)活節(jié) Easter Sunday'; }
if(m==2) this[20].solarFestival = this[20].solarFestival+unescape('%20%u6D35%u8CE2%u751F%u65E5');
//黑色星期五 if((this.firstWeek+12)%7==5) this[12].solarFestival += '黑色星期五';
if(m==8) this[13].solarFestival = this[13].solarFestival+unescape('%u795D%u8D3A%u6885%u7AF9%u677E%u751F%u65E5%u5FEB%u4E50%u003A%u0029');
//今日 if(y==tY && m==tM) this[tD-1].isToday = true; }
//======================================= 返回該年的復(fù)活節(jié)(春分后第一次滿月周后的第一主日) function easter(y) {
var term2=sTerm(y,5); //取得春分日期 var dayTerm2 = new Date(Date.UTC(y,2,term2,0,0,0,0)); //取得春分的公歷日期控件(春分一定出現(xiàn)在3月) var lDayTerm2 = new Lunar(dayTerm2); //取得取得春分農(nóng)歷
if(lDayTerm2.day<15) //取得下個(gè)月圓的相差天數(shù) var lMlen= 15-lDayTerm2.day; else var lMlen= (lDayTerm2.isLeap? leapDays(y): monthDays(y,lDayTerm2.month)) - lDayTerm2.day + 15;
//一天等于 1000*60*60*24 = 86400000 毫秒 var l15 = new Date(dayTerm2.getTime() + 86400000*lMlen ); //求出第一次月圓為公歷幾日 var dayEaster = new Date(l15.getTime() + 86400000*( 7-l15.getUTCDay() ) ); //求出下個(gè)周日
this.m = dayEaster.getUTCMonth(); this.d = dayEaster.getUTCDate();
}
//====================== 中文日期 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>1874 && SY<1909) yDisplay = '光緒' + (((SY-1874)==1)?'元':SY-1874); if(SY>1908 && SY<1912) yDisplay = '宣統(tǒng)' + (((SY-1908)==1)?'元':SY-1908); if(SY>1911 && SY<1950) yDisplay = '民國(guó)' + (((SY-1911)==1)?'元':SY-1911); if(SY>1948) yDisplay = '建國(guó)' + (((SY-1949)==1)?'元':SY-1949);
GZ.innerHTML = yDisplay +'年 農(nóng)歷 ' + cyclical(SY-1900+36) + '年 【'+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) { //日期內(nèi) sObj.innerHTML = sD+1;
if(cld[sD].isToday) sObj.className = 'todyaColor'; //今日顏色
sObj.style.color = cld[sD].color; //法定假日顏色
if(cld[sD].lDay==1) //顯示農(nóng)歷月 lObj.innerHTML = '<b>'+(cld[sD].isLeap?'閏':'') + cld[sD].lMonth + '月' + (monthDays(cld[sD].lYear,cld[sD].lMonth)==29?'小':'大')+'</b>'; else //顯示農(nóng)歷日 lObj.innerHTML = cDay(cld[sD].lDay);
s=cld[sD].lunarFestival; if(s.length>0) { //農(nóng)歷節(jié)日 if(s.length>6) s = s.substr(0, 4)+'...'; s = s.fontcolor('red'); } else { //公歷節(jié)日 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=='黑色星期五')?s.fontcolor('black'):s.fontcolor('blue'); } else { //廿四節(jié)氣 s=cld[sD].solarTerms; if(s.length>0) s = s.fontcolor('limegreen'); } }
if(cld[sD].solarTerms=='清明') s = '清明節(jié)'.fontcolor('red'); if(cld[sD].solarTerms=='芒種') s = '芒種'.fontcolor('red'); if(cld[sD].solarTerms=='夏至') s = '夏至'.fontcolor('red'); if(cld[sD].solarTerms=='冬至') s = '冬至'.fontcolor('red');
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<200) 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<200) 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 = 8;
var x = 0; var y = 0; var snow = 0; var sw = 0; var cnt = 0;
var dStyle; document.onmousemove = mEvn;
//顯示詳細(xì)日期資料 function mOvr(v) { var s,festival; var sObj=eval('SD'+ v); var d=sObj.innerHTML-1;
//sYear,sMonth,sDay,week, //lYear,lMonth,lDay,isLeap, //cYear,cMonth,cDay
if(sObj.innerHTML!='') {
sObj.style.cursor = 's-resize';
if(cld[d].solarTerms == '' && cld[d].solarFestival == '' && cld[d].lunarFestival == '') 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+'</FONT></TD>'+ '</TR></TABLE>';
s= '<TABLE WIDTH="130" BORDER=0 CELLPADDING="2" CELLSPACING=0 BGCOLOR="#000066" style="filter:Alpha(opacity=80)"><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+' 日<br>星期'+cld[d].week+'<br>'+ '<font color="violet">農(nóng)歷'+(cld[d].isLeap?'閏 ':' ')+cld[d].lMonth+' 月 '+cld[d].lDay+' 日</font><br>'+ '<font color="yellow">'+cld[d].cYear+'年 '+cld[d].cMonth+'月 '+cld[d].cDay + '日</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; } } }
//清除詳細(xì)日期資料 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; } }
/***************************************************************************** 世界時(shí)間計(jì)算 *****************************************************************************/ var OneHour = 60*60*1000; var OneDay = OneHour*24; var TimezoneOffset = Today.getTimezoneOffset()*60*1000;
function showUTC(objD) { var dn,s; var hh = objD.getUTCHours(); var mm = objD.getUTCMinutes(); var ss = objD.getUTCSeconds(); s = objD.getUTCFullYear() + "年" + (objD.getUTCMonth() + 1) + "月" + objD.getUTCDate() +"日 ("+ nStr1[objD.getUTCDay()] +")";
if(hh>12) { hh = hh-12; dn = '下午'; } else dn = '上午';
if(hh<10) hh = '0' + hh; if(mm<10) mm = '0' + mm; if(ss<10) ss = '0' + ss;
s += " " + dn + ' ' + hh + ":" + mm + ":" + ss; return(s); }
function showLocale(objD) { var dn,s; var hh = objD.getHours(); var mm = objD.getMinutes(); var ss = objD.getSeconds(); s = objD.getFullYear() + "年" + (objD.getMonth() + 1) + "月" + objD.getDate() +"日 ("+ nStr1[objD.getDay()] +")";
if(hh>12) { hh = hh-12; dn = '下午'; } else dn = '上午';
if(hh<10) hh = '0' + hh; if(mm<10) mm = '0' + mm; if(ss<10) ss = '0' + ss;
s += " " + dn + ' ' + hh + ":" + mm + ":" + ss; return(s); }
//傳入時(shí)差字串, 返回偏移之正負(fù)毫秒 function parseOffset(s) { var sign,hh,mm,v; sign = s.substr(0,1)=='-'?-1:1; hh = Math.floor(s.substr(1,2)); mm = Math.floor(s.substr(3,2)); v = sign*(hh*60+mm)*60*1000; return(v); }
//返回UTC日期控件 (年,月-1,第幾個(gè)星期幾,幾點(diǎn)) function getWeekDay(y,m,nd,w,h){ var d,d2,w1; if(nd>0){ d = new Date(Date.UTC(y, m, 1)); w1 = d.getUTCDay(); d2 = new Date( d.getTime() + ((w<w1? w+7-w1 : w-w1 )+(nd-1)*7 )*OneDay + h*OneHour); } else { nd = Math.abs(nd); d = new Date( Date.UTC(y, m+1, 1) - OneDay ); w1 = d.getUTCDay(); d2 = new Date( d.getTime() + ( (w>w1? w-7-w1 : w-w1 )-(nd-1)*7 )*OneDay + h*OneHour); } return(d2); }
//傳入某時(shí)間值, 日光節(jié)約字串 返回 true 或 false function isDaylightSaving(d,strDS) {
if(strDS == '') return(false);
var m1,n1,w1,t1; var m2,n2,w2,t2; with (Math){ m1 = floor(strDS.substr(0,2))-1; w1 = floor(strDS.substr(3,1)); t1 = floor(strDS.substr(4,1)); m2 = floor(strDS.substr(6,2))-1; w2 = floor(strDS.substr(9,1)); t2 = floor(strDS.substr(10,1)); }
switch(strDS.substr(2,1)){ case 'F': n1=1; break; case 'L': n1=-1; break; default : n1=0; break; }
switch(strDS.substr(8,1)){ case 'F': n2=1; break; case 'L': n2=-1; break; default : n2=0; break; }
var d1, d2, re;
if(n1==0) d1 = new Date(Date.UTC(d.getUTCFullYear(), m1, Math.floor(strDS.substr(2,2)),t1)); else d1 = getWeekDay(d.getUTCFullYear(),m1,n1,w1,t1);
if(n2==0) d2 = new Date(Date.UTC(d.getUTCFullYear(), m2, Math.floor(strDS.substr(8,2)),t2)); else d2 = getWeekDay(d.getUTCFullYear(),m2,n2,w2,t2);
if(d2>d1) re = (d>d1 && d<d2)? true: false; else re = (d>d1 || d<d2)? true: false;
return(re); }
var isDS = false;
//計(jì)算全球時(shí)間 function getGlobeTime() { var d,s; d = new Date();
d.setTime(d.getTime()+parseOffset(objTimeZone[0]));
isDS=isDaylightSaving(d,objTimeZone[1]); if(isDS) d.setTime(d.getTime()+OneHour); return(showUTC(d)); }
var objTimeZone; var objContinentMenu; var objCountryMenu;
function tick() { var today; today = new Date(); LocalTime.innerHTML = showLocale(today); GlobeTime.innerHTML = getGlobeTime(); window.setTimeout("tick()", 1000); }
//指定自定索引時(shí)區(qū) function setTZ(a,c){ objContinentMenu.options[a].selected=true; chContinent(); objCountryMenu.options[c].selected=true; chCountry(); }
//變更區(qū)域 function chContinent() { var key,i; continent = objContinentMenu.options[objContinentMenu.selectedIndex].text; for (var i = objCountryMenu.options.length-1; i >= 0; i--) objCountryMenu[0]=null; for (key in timeData[continent]) objCountryMenu.options[objCountryMenu.options.length]=new Option(key); objCountryMenu.options[0].selected=true; chCountry(); }
//變更國(guó)家 function chCountry() { var txtContinent = objContinentMenu.options[objContinentMenu.selectedIndex].text; var txtCountry = objCountryMenu.options[objCountryMenu.selectedIndex].text;
objTimeZone = timeData[txtContinent][txtCountry];
getGlobeTime();
//地圖位移 City.innerHTML = (isDS==true?"<SPAN STYLE='font-size:12pt;font-family:Wingdings; color:Red;'>R</span> ":'') + objTimeZone[2]; //首都 var pos = Math.floor(objTimeZone[0].substr(0,3)); if(pos<0) pos+=24; pos*=-10; world.style.left = pos;
}
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(''); } else return(''); }
///////////////////////////////////////////////////////////////////////////
function initialize() { var key;
//時(shí)間 map.filters.Light.Clear(); map.filters.Light.addAmbient(255,255,255,60); map.filters.Light.addCone(120, 60, 80, 120, 60, 255,255,255,120,60);
objContinentMenu=document.WorldClock.continentMenu; objCountryMenu=document.WorldClock.countryMenu;
for (key in timeData) objContinentMenu[objContinentMenu.length]=new Option(key);
var TZ1 = getCookie('TZ1'); var TZ2 = getCookie('TZ2');
if(TZ1=='') {TZ1=0; TZ2=3;} setTZ(TZ1,TZ2);
tick();
//陰歷 dStyle = detail.style; CLD.SY.selectedIndex=tY-1900; CLD.SM.selectedIndex=tM; drawCld(tY,tM);
}
function terminate() { setCookie("TZ1",objContinentMenu.selectedIndex); setCookie("TZ2",objCountryMenu.selectedIndex); }
//-->
|