Ò»Á÷ÐÅÏ¢¼à¿ØÀ¹½ØÏµÍ³
Õ Íò¹úÓÊÁªÈÕ",
"1010 ÐÁº¥¸ïÃü¼ÍÄîÈÕ ÊÀ½ç¾«ÉñÎÀÉúÈÕ",
"1013 ÊÀ½ç±£½¡ÈÕ ¹ú¼Ê½Ìʦ½Ú",
"1014 ÊÀ½ç±ê×¼ÈÕ",
"1015 ¹ú¼ÊäÈ˽Ú(°×ÊÖÕȽÚ)",
"1016 ÊÀ½çÁ¸Ê³ÈÕ",
"1017 ÊÀ½çÏû³ýƶÀ§ÈÕ",
"1022 ÊÀ½ç´«Í³Ò½Ò©ÈÕ",
"1024 ÁªºÏ¹úÈÕ",
"1031 ÊÀ½çÇÚ¼óÈÕ",
"1107 Ê®ÔÂÉç»áÖ÷Òå¸ïÃü¼ÍÄîÈÕ",
"1108 Öйú¼ÇÕßÈÕ",
"1109 È«¹úÏû·À°²È«Ðû´«½ÌÓýÈÕ",
"1110 ÊÀ½çÇàÄê½Ú",
"1111 ¹ú¼Ê¿ÆÑ§ÓëºÍƽÖÜ(±¾ÈÕËùÊôµÄÒ»ÖÜ)",
"1112 ËïÖÐɽµ®³½¼ÍÄîÈÕ",
"1114 ÊÀ½çÌÇÄò²¡ÈÕ",
"1117 ¹ú¼Ê´óѧÉú½Ú ÊÀ½çѧÉú½Ú",
"1120*ÒÍ×åÄê",
"1121*ÒÍ×åÄê ÊÀ½çÎʺòÈÕ ÊÀ½çµçÊÓÈÕ",
"1122*ÒÍ×åÄê",
"1129 ¹ú¼ÊÉùÔ®°ÍÀÕ˹̹ÈËÃñ¹ú¼ÊÈÕ",
"1201 ÊÀ½ç°¬×̲¡ÈÕ",
"1203 ÊÀ½ç²Ð¼²ÈËÈÕ",
"1205 ¹ú¼Ê¾¼ÃºÍÉç»á·¢Õ¹Ö¾Ô¸ÈËÔ±ÈÕ",
"1208 ¹ú¼Ê¶ùͯµçÊÓÈÕ",
"1209 ÊÀ½ç×ãÇòÈÕ",
"1210 ÊÀ½çÈËȨÈÕ",
"1212 Î÷°²Ê±ä¼ÍÄîÈÕ",
"1213 ÄϾ©´óÍÀɱ(1937Äê)¼ÍÄîÈÕ£¡½ô¼ÇѪÀáÊ·£¡",
"1220 °ÄÃŻعé¼ÍÄî",
"1221 ¹ú¼ÊÀºÇòÈÕ",
"1224 ƽ°²Ò¹",
"1225 Ê¥µ®½Ú",
"1226 ëÔó¶«µ®³½¼ÍÄî")
//Å©Àú½ÚÈÕ *±íʾ·Å¼ÙÈÕ
var lFtv = new Array(
"0101*´º½Ú",
"0102*³õ¶þ",
"0103*³õÈý",
"0115 ÔªÏü½Ú",
"0505 ¶ËÎç½Ú",
"0707 ÆßϦÇéÈ˽Ú",
"0715 ÖÐÔª½Ú",
"0815 ÖÐÇï½Ú",
"0909 ÖØÑô½Ú",
"1208 À°°Ë½Ú",
"1223 СÄê",
"0100 ³ýϦ")
//ijÔµĵڼ¸¸öÐÇÆÚ¼¸
var wFtv = new Array(
"0150 ÊÀ½çÂé·çÈÕ", //Ò»ÔµÄ×îºóÒ»¸öÐÇÆÚÈÕ£¨Ôµ¹ÊýµÚÒ»¸öÐÇÆÚÈÕ£©
"0520 ¹ú¼ÊĸÇ×½Ú",
"0530 È«¹úÖú²ÐÈÕ",
"0630 ¸¸Ç×½Ú",
"0730 ±»Å«ÒÛ¹ú¼ÒÖÜ",
"0932 ¹ú¼ÊºÍƽÈÕ",
"0940 ¹ú¼ÊÁûÈË½Ú ÊÀ½ç¶ùͯÈÕ",
"0950 ÊÀ½çº£ÊÂÈÕ",
"1011 ¹ú¼Êס·¿ÈÕ",
"1013 ¹ú¼Ê¼õÇá×ÔÈ»ÔÖº¦ÈÕ(¼õÔÖÈÕ)",
"1144 ¸Ð¶÷½Ú")
/*****************************************************************************
ÈÕÆÚ¼ÆËã
*****************************************************************************/
//====================================== ·µ»ØÅ©Àú 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
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<2050 && offset>0; i++) { temp=lYearDays(i); offset-=temp; }
if(offset<0) { offset+=temp; i--; }
this.year = i;
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(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Äêijm+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.sYear = sYear; //¹«ÔªÄê4λÊý×Ö
this.sMonth = sMonth; //¹«ÔªÔÂÊý×Ö
this.sDay = sDay; //¹«ÔªÈÕÊý×Ö
this.week = week; //ÐÇÆÚ, 1¸öÖÐÎÄ
//Å©Àú
this.lYear = lYear; //¹«ÔªÄê4λÊý×Ö
this.lMonth = lMonth; //Å©ÀúÔÂÊý×Ö
this.lDay = lDay; //Å©ÀúÈÕÊý×Ö
this.isLeap = isLeap; //ÊÇ·ñΪũÀúÈòÔÂ?
//°Ë×Ö
this.cYear = cYear; //ÄêÖù, 2¸öÖÐÎÄ
this.cMonth = cMonth; //ÔÂÖù, 2¸öÖÐÎÄ
this.cDay = cDay; //ÈÕÖù, 2¸öÖÐÎÄ
this.color = '';
this.lunarFestival = ''; //Å©Àú½ÚÈÕ
this.solarFestival = ''; //¹«Àú½ÚÈÕ
this.solarTerms = ''; //½ÚÆø
}
//===== ijÄêµÄµÚ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ÔÂ)
/*
¹¦ÄÜ˵Ã÷: ·µ»ØÕû¸öÔµÄÈÕÆÚ×ÊÁϿؼþ
ʹÓ÷½Ê½: OBJ = new calendar(Äê,ÁãÆðËãÔÂ);
OBJ.length ·µ»Øµ±ÔÂ×î´óÈÕ
OBJ.firstWeek ·µ»Øµ±ÔÂÒ»ÈÕÐÇÆÚ
ÓÉ OBJ[ÈÕÆÚ].ÊôÐÔÃû³Æ ¼´¿ÉÈ¡µÃ¸÷ÏîÖµ
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); //µ±ÔÂÒ»ÈÕÈÕÆÚ
this.length = solarDays(y,m); //¹«Àúµ±ÔÂÌìÊý
this.firstWeek = sDObj.getDay(); //¹«Àúµ±ÔÂ1ÈÕÐÇÆÚ¼¸
////////ÄêÖù 1900ÄêÁ¢´ººóΪ¸ý×ÓÄê(60½øÖÆ36)
if(m<2) cY=cyclical(y-1900+36-1);
else cY=cyclical(y-1900+36);
var term2=sTerm(y,2); //Á¢´ºÈÕÆÚ
////////ÔÂÖù 1900Äê1ÔÂСº®ÒÔǰΪ ±û×ÓÔÂ(60½øÖÆ12)
var firstNode = sTerm(y,m*2) //·µ»Øµ±Ô¡¸½Ú¡¹Îª¼¸ÈÕ¿ªÊ¼
cM = cyclical((y-1900)*12+m+12);
//µ±ÔÂÒ»ÈÕÓë 1900/1/1 Ïà²îÌìÊý
//1900/1/1Óë 1970/1/1 Ïà²î25567ÈÕ, 1900/1/1 ÈÕÖùΪ¼×ÐçÈÕ(60½øÖÆ10)
var dayCyclical = Date.UTC(y,m,1,0,0,0,0)/86400000+25567+10;
for(var i=0;i
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;
}
//ÒÀ½ÚÆøµ÷Õû¶þÔ·ֵÄÄêÖù, ÒÔÁ¢´ºÎª½ç
if(m==1 && (i+1)==term2) cY=cyclical(y-1900+36);
//ÒÀ½ÚÆøÔÂÖù, ÒÔ¡¸½Ú¡¹Îª½ç
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 );
}
//½ÚÆø
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'; //ÇåÃ÷ÑÕÉ«
//¹«Àú½ÚÈÕ
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);
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; //µ±ÔÂ×îºóÒ»ÌìÐÇÆÚ?
this[this.length - tmp3 - 7*tmp1 + tmp2 - (tmp2>tmp3?7:0) - 1 ].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= 0 && tmp21874 && SY<1909) yDisplay = '¹âÐ÷' + (((SY-1874)==1)?'Ôª':SY-1874);
if(SY>1908 && SY<1912) yDisplay = 'Ðûͳ' + (((SY-1908)==1)?'Ôª':SY-1908);
if(SY>1911) yDisplay = '½¨¹ú' + (((SY-1949)==1)?'Ôª':SY-1949);
GZ.innerHTML = yDisplay +'Äê Å©Àú ' + cyclical(SY-1900+36) + 'Äê ¡¾'+Animals[(SY-4)%12]+'Äê¡¿';
YMBG.innerHTML = " " + SY + "
" + 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';
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=='ºÚÉ«ÐÇÆÚÎå')?s.fontcolor('black'):s.fontcolor('blue');
}
else { //Ø¥ËÄ½ÚÆø
s=cld[sD].solarTerms;
if(s.length>0) s = s.fontcolor('limegreen');
}
}
if(cld[sD].solarTerms=='ÇåÃ÷') s = 'ÇåÃ÷½Ú'.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<150) 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<150) 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;
//ÏÔʾÏêϸÈÕÆÚ×ÊÁÏ
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 = '| '+
''+cld[d].solarTerms + ' ' + cld[d].solarFestival + ' ' + cld[d].lunarFestival+' | '+
'
';
s= '' +
''+
cld[d].sYear+' Äê '+cld[d].sMonth+' ÔÂ '+cld[d].sDay+' ÈÕ ÐÇÆÚ'+cld[d].week+' '+
'Å©Àú'+(cld[d].isLeap?'Èò ':' ')+cld[d].lMonth+' Ô '+cld[d].lDay+' ÈÕ '+
''+cld[d].cYear+'Äê '+cld[d].cMonth+'ÔÂ '+cld[d].cDay + 'ÈÕ'+
' | '+ festival +' |
';
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() {
dStyle = detail.style;
CLD.SY.selectedIndex=tY-1900;
CLD.SM.selectedIndex=tM;
drawCld(tY,tM);
pushBtm('');
CLD.TZ.selectedIndex=getCookie("TZ");
changeTZ();
tick();
}
//-->
ÑôÀúÖкìÉ«/ÂÌÉ«±íʾ½Ú¼ÙÈÕ£¬Å©ÀúÖÐÂÌÉ«±íʾ24½ÚÆøÈÕ£¬ºìÉ«±íʾ´«Í³½ÚÈÕ£¬À¶É«Ôò±íʾ¹«ÖÚ½Ú¼ÙÈÕ
- Ïà¹ØËÑË÷£º
- ÍòÄêÀú
- ÈÕÀú
- ½Ú¼ÙÈÕ
- ½ÚÈÕ
- ÉúÈÕ