happy175 发表于 2010-6-22 17:34:35

功能强大的网页版极品日历源码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>功能强大的网页版极品日历源码-设计源</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<!--把下面代码加到<head>与</head>之间-->
<STYLE type="text/css">
html{overflow-x:hidden;overflow-y:auto;}
body{background-color:beige;}
#myrl{width:532px;height:352px;margin:0px auto;background:#fff;position:relative;border:2px dashed #ccc;}
#box{width:520px;height:322px;position:absolute;top:10px;right:0px;}
#boxmsg a{display:block;font-size:12px;color:#09F;text-decoration:none;text-align:center;padding-top:12px;background:#ededed;width:48px;height:37px;position:absolute;top:13px;right:15px;z-index:9999;}
#boxcopy{font-size:12px;color:#D2FFE1;height:16px;position:absolute;bottom:6px;right:15px;z-index:2;}
.btm button{display:block;height:22px;width:36px;line-height:18px;white-space:nowrap;text-align:center;}
.todyaColor{background-color:#0FF;}
/*主题颜色
#0FF=今日颜色;
#0099FF=日历主题颜色;
*/
table.biao{border-collapse:collapse;font-family:"Times New Roman","宋体";}
table.biao td{border:1px solid #fff;}
</STYLE>
<SCRIPT language="JavaScript">
function ks(){return true;}
window.onerror=ks;
</SCRIPT>
<SCRIPT language="JavaScript">
<!--
/*****************************************************************************
日期资料 代码来源台湾林洵贤《农历月历与世界时间》
*****************************************************************************/
var lunarInfo=new Array(
0x4bd8,0x4ae0,0xa570,0x54d5,0xd260,0xd950,0x5554,0x56af,0x9ad0,0x55d2,
0x4ae0,0xa5b6,0xa4d0,0xd250,0xd255,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);
varsolarMonth=newArray(31,28,31,30,31,30,31,31,30,31,30,31);
varGan=newArray("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");
varZhi=newArray("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");
varAnimals=newArray("鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪");
varsolarTerm=newArray("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至")
varsTermInfo=newArray(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758)
varnStr1=newArray('日','一','二','三','四','五','六','七','八','九','十')
varnStr2=newArray('初','十','廿','卅',' ')
//国历节日*表示放假日
varsFtv=newArray(
"0101*元旦",
"0106中国13亿人口日",
"0110中国110宣传日",
"0202世界湿地日",
"0204世界抗癌症日",
"0210世界气象日",
"0214情人节",
"0221国际母语日",
"0207国际声援南非日",
"0303全国爱耳日",
"0308妇女节",
"0312植树节 孙中山逝世纪念日",
"0315消费者权益保护日",
"0321世界森林日",
"0322世界水日",
"0323世界气象日",
"0324世界防治结核病日",
"0401愚人节",
"0407世界卫生日",
"0422世界地球日",
"0501*国际劳动节",
"0504中国青年节",
"0505全国碘缺乏病日",
"0508世界红十字日",
"0512国际护士节",
"0515国际家庭日",
"0517世界电信日",
"0518国际博物馆日",
"0519中国汶川地震哀悼日 全国助残日",
"0520全国学生营养日",
"0522国际生物多样性日",
"0523国际牛奶日",
"0531世界无烟日",
"0601国际儿童节",
"0605世界环境日",
"0606全国爱眼日",
"0617防治荒漠化和干旱日",
"0623国际奥林匹克日",
"0625全国土地日",
"0626国际反毒品日",
"0701建党节 香港回归纪念日",
"0707抗日战争纪念日",
"0711世界人口日",
"0801八一建军节",
"0815日本正式宣布无条件投降日",
"0908国际扫盲日",
"0909毛泽东逝世纪念日",
"0910教师节",
"0916国际臭氧层保护日",
"0917国际和平日",
"0918九·一八事变纪念日",
"0920国际爱牙日",
"0927世界旅游日",
"0928孔子诞辰",
"1001*国庆节 国际音乐节 国际老人节",
"1002国际减轻自然灾害日",
"1004世界动物日",
"1007国际住房日",
"1008世界视觉日 全国高血压日",
"1009世界邮政日",
"1010辛亥革命纪念日 世界精神卫生日",
"1015国际盲人节",
"1016世界粮食节",
"1017世界消除贫困日",
"1022世界传统医药日",
"1024联合国日",
"1025人类天花绝迹日",
"1026足球诞生日",
"1031万圣节",
"1107十月社会主义革命纪念日",
"1108中国记者日",
"1109消防宣传日",
"1110世界青年节",
"1112孙中山诞辰",
"1114世界糖尿病日",
"1117国际大学生节",
"1201世界艾滋病日",
"1203世界残疾人日",
"1209世界足球日",
"1210世界人权日",
"1212西安事变纪念日",
"1213南京大屠杀(1937年)纪念日,血泪的历史,中华儿女不可忘",
"1220澳门回归纪念日",
"1221国际篮球日",
"1224平安夜",
"1225圣诞节 世界强化免疫日",
"1226毛泽东诞辰")
//农历节日*表示放假日
varlFtv=newArray(
"0101*春节",
"0102*大年初二",
"0103*大年初三",
"0105路神生日",
"0115元宵节",
"0202龙抬头",
"0219观世音圣诞",
"0404寒食节",
"0408佛诞节 ",
"0505*端午节",
"0606天贶节 姑姑节",
"0624彝族火把节",
"0707七夕情人节",
"0714鬼节(南方)",
"0715盂兰节",
"0730地藏节",
"0815*中秋节",
"0909重阳节",
"1001祭祖节",
"1117阿弥陀佛圣诞",
"1208腊八节 释迦如来成道日",
"1223过小年",
"0100*除夕");
//某月的第几个星期几; 5,6,7,8 表示到数第 1,2,3,4 个星期几
varwFtv=newArray(
"0110黑人节",
"0150世界麻风日",
"0121日本成人节",
"0520母亲节",
"0530全国助残日",
"0630父亲节",
"0716合作节",
"0730被奴役国家周",
"0932国际和平日",
"0940国际聋人节 世界儿童日",
"1011国际住房日",
"1144感恩节")
/*****************************************************************************
日期计算
*****************************************************************************/
//====================================== 返回农历 y年的总天数
function lYearDays(y) {
var i, sum = 348;
for(i=0x8000; i>0x8; i>>=1) sum += (lunarInfo & i)? 1: 0;
return(sum+leapDays(y));
}
//====================================== 返回农历 y年闰月的天数
function leapDays(y) {
if(leapMonth(y)) return( (lunarInfo&0xf)==0xf? 30: 29);
else return(0);
}
//====================================== 返回农历 y年闰哪个月 1-12 , 没闰返回 0
function leapMonth(y) {
var lm = lunarInfo & 0xf;
return(lm==0xf?0:lm);
}
//====================================== 返回农历 y年m月的总天数
function monthDays(y,m) {
return( (lunarInfo & (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<2100 && 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年某m+1月的天数
function solarDays(y,m) {
   if(m==1)
      return(((y%4 == 0) && (y%100 != 0) || (y%400 == 0))? 29: 28);
   else
      return(solarMonth);
}
//============================== 传入 offset 返回干支, 0=甲子
function cyclical(num) {
   return(Gan+Zhi);
}
//============================== 阴历属性
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    = ''; //节气
}
//===== 某年的第n个节气为几日(从0小寒起算)
function sTerm(y,n) {
   var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo*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, 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<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 = 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 = 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.solarTerms = solarTerm;
   this.solarTerms = solarTerm;
   if(m==3) this.color = 'red'; //清明颜色
//国历节日
for(iinsFtv)
if(sFtv.match(/^(\d{2})(\d{2})([\s\*])(.+)$/))
if(Number(RegExp.$1)==(m+1)){
this.solarFestival+=RegExp.$4+''
if(RegExp.$3=='*')this.color='red'
}
//月周节日
for(iinwFtv)
if(wFtv.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(iinlFtv)
if(lFtv.match(/^(\d{2})(.{2})([\s\*])(.+)$/)){
tmp1=Number(RegExp.$1)-firstLM
if(tmp1==-11)tmp1=1
if(tmp1>=0&&tmp1<n){
tmp2=lDPOS+Number(RegExp.$2)-1
if(tmp2>=0&&tmp2<this.length){
this.lunarFestival+=RegExp.$4+''
if(RegExp.$3=='*')this.color='red'
}
}
}
//复活节只出现在3或4月
   if(m==2 || m==3) {
      var estDay = new easter(y);
      if(m == estDay.m)
         this.solarFestival = this.solarFestival+' 复活节(Easter Sunday)';
   }
   if(m==2) {this.solarFestival += unescape('%u300A%u6781%u54C1%u65E5%u5386%u300B%u6B63%u5F0F%u53D1%u5E03');
   }
   //黑色星期五
   if((this.firstWeek+12)%7==5)
      this.solarFestival += '黑色星期五';
   //今日
   if(y==tY && m==tM) this.isToday = true;
}
//======================================= 返回该年的复活节(春分后第一次满月周后的第一主日)
function easter(y) {
   var term2=sTerm(y,5); //取得春分日期
   var dayTerm2 = new Date(Date.UTC(y,2,term2,0,0,0,0)); //取得春分的公历日期控件(春分一定出现在3月)
   var lDayTerm2 = new Lunar(dayTerm2); //取得取得春分农历
   if(lDayTerm2.day<15) //取得下个月圆的相差天数
      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() ) ); //求出下个周日
   this.m = dayEaster.getUTCMonth();
   this.d = dayEaster.getUTCDate();
}
//======================中文日期
functioncDay(d){
vars;
switch(d){
case10:
s='初十';break;
case20:
s='二十';break;
break;
case30:
s='三十';break;
break;
default:
s=nStr2;
s+=nStr1;
}
return(s);
}
varcld;
functiondrawCld(SY,SM){
vari,sD,s,size;
cld=newcalendar(SY,SM);
if(SY>1874&&SY<1909)yDisplay='光绪'+(((SY-1874)==1)?'元':SY-1874)
if(SY>1908&&SY<1912)yDisplay='宣统'+(((SY-1908)==1)?'元':SY-1908)
if(SY>1911&&SY<1950)yDisplay='民国'+(((SY-1911)==1)?'元':SY-1911)
if(SY>1949)yDisplay='共和国'+(((SY-1949)==1)?'元':SY-1949)
GZ.innerHTML=yDisplay+'年农历'+cyclical(SY-1900+36)+'年&nbsp;【'+Animals[(SY-4)%12]+'】';
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.isToday)sObj.className='todyaColor';//今日颜色
sObj.style.color=cld.color;//国定假日颜色
if(cld.lDay==1)//显示农历月
lObj.innerHTML='<b>'+(cld.isLeap?'闰':'')+cld.lMonth+'月'+(monthDays(cld.lYear,cld.lMonth)==29?'小':'大')+'</b>';
else//显示农历日
lObj.innerHTML=cDay(cld.lDay);
s=cld.lunarFestival;
if(s.length>0){//农历节日
if(s.length>8)s=s.substr(0,5)+'...';
s=s.fontcolor('red');
}
else{//国历节日
s=cld.solarFestival;
if(s.length>0){
if(s.length>8)s=s.substr(0,5)+'...';
s=(s=='黑色星期五')?s.fontcolor('black'):s.fontcolor('#0066FF');
}
else{//廿四节气
s=cld.solarTerms;
if(s.length>0)s=s.fontcolor('limegreen');
}
}
if(cld.solarTerms=='清明') s = '清明节'.fontcolor('red');
if(cld.solarTerms=='芒种') s = '芒种'.fontcolor('red');
if(cld.solarTerms=='夏至') s = '夏至'.fontcolor('red');
if(cld.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();
this.blur();
}
var Today = new Date();
var tY = Today.getFullYear();
var tM = Today.getMonth();
var tD = Today.getDate();
//////////////////////////////////////////////////////////////////////////////
varwidth="130";
varoffsetX=2;
varoffsetY=18;
varx=0;
vary=0;
varsnow=0;
varsw=0;
varcnt=0;
vardStyle;
document.onmousemove=mEvn;
//计算星座
function getAstro(month,day){   
    var s="魔羯水瓶双鱼白羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯";
    var arr=;
    return s.substr(month*2-(day<arr?2:0),2);
}
//将农历iLunarMonth月格式化成农历表示的字符串
function FormatLunarMonth(iLunarMonth)
{
var szText = new String("正二三四五六七八九十");
var strMonth;
if (iLunarMonth <= 10)
{
strMonth = szText.substr(iLunarMonth - 1, 1);
}
else if (iLunarMonth == 11) strMonth = "十一";
else strMonth = "十二";
return strMonth + "月";
}
//将农历iLunarDay日格式化成农历表示的字符串
function FormatLunarDay(iLunarDay)
{
var szText1 = new String("初十廿三");
var szText2 = new String("一二三四五六七八九十");
var strDay;
if ((iLunarDay != 20) && (iLunarDay != 30))
{
strDay = szText1.substr((iLunarDay - 1) / 10, 1) + szText2.substr((iLunarDay - 1) % 10, 1);
}
else if (iLunarDay != 20)
{
strDay = szText1.substr(iLunarDay / 10, 1) + "十";
}
else
{
strDay = "二十";
}
return strDay;
}
//显示详细日期资料
functionmOvr(v){
vars,festival;
varsObj=eval('SD'+v);
vard=sObj.innerHTML-1;
var myxz=getAstro(cld.sMonth,cld.sDay);
//sYear,sMonth,sDay,week,
//lYear,lMonth,lDay,isLeap,
//cYear,cMonth,cDay
if(sObj.innerHTML!=''){
sObj.style.cursor='default';
if(cld.solarTerms==''&&cld.solarFestival==''&&cld.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.solarTerms+''+cld.solarFestival+''+cld.lunarFestival+'</FONT></TD>'+'</TR></TABLE>';
s='<TABLE WIDTH="130" BORDER="0" CELLPADDING="2" CELLSPACING="0" BGCOLOR="#0099FF"><TR><TD>'+
'<TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0"><TR><TD ALIGN="right"><FONT COLOR="#ffffff" STYLE="font-size:9pt;">'+
cld.sYear+'年'+cld.sMonth+'月'+cld.sDay+'日<br>星期'+cld.week+' '+myxz+'座<br>'+
'<font color="#FFCCCC">农历'+(cld.isLeap?'闰':'')+FormatLunarMonth(cld.lMonth)+FormatLunarDay(cld.lDay)+'</font><br>'+
'<font color="yellow">'+cld.cYear+'年'+cld.cMonth+'月'+cld.cDay+'日</font>'+
'</FONT></TD></TR></TABLE>'+festival+'</TD></TR></TABLE>';
document.getElementById("detail").innerHTML=s;
if(snow==0){
dStyle.left=x+offsetX-(width/2);
dStyle.top=y+offsetY;
dStyle.visibility="visible";
snow=1;
}
}
}
//清除详细日期资料
functionmOut(){
if(cnt>=1){sw=0}
if(sw==0){snow=0; dStyle.visibility="hidden";}
elsecnt++;
}
//取得位置
functionmEvn(evt){
evt=evt?evt:(window.event?window.event:null);
if(document.body.scrollLeft)
{x=evt.x+document.body.scrollLeft;y=evt.y+document.body.scrollTop;}else{
x=evt.x?evt.x:evt.pageX;
y=evt.y?evt.y:evt.pageY;
}
if(snow){
if(navigator.userAgent.indexOf('MSIE')>=0){//ie
dStyle.left=x+offsetX-(width/2)
dStyle.top=y+offsetY}
else{//ff gc
dStyle.left=x-432;
dStyle.top=y+10;}
}
}
///////////////////////////////////////////////////////////////////////////
functioninitial(){
dStyle=document.getElementById('detail').style;
CLD.SY.selectedIndex=tY-1900;
CLD.SM.selectedIndex=tM;
drawCld(tY,tM);
}
//-->
</SCRIPT>
</head>
<!--<body>改为-->
<body onLoad="initial()">
<!--把下面代码加到<body>与</body>之间-->
<div id="myrl">
<FORM name="CLD">
   <DIV id="detail" style="position:absolute;z-index:9999;"></DIV>
    <TABLE id="box" style="table-layout:fixed;word-break:break-all;word-wrap:break-word;">
      <TBODY>
      <TR>
          <TD align="middle">
            <TABLE class="biao">
            <TBODY>
                <TR>
                  <TD bgColor="#0099FF" colSpan="7" style="height:22px;padding-top:3px;text-align:center;"><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" style="color:#fff;font:18px 'Times New Roman','宋体';"></FONT>
                   </TD>
                </TR>
                <TR style="color:#333;font:16px '宋体';background:#A8E1FD;font-weight:bold;text-align:center;vertical-align:middle;">
                  <TD width="70">日</TD>
                  <TD width="70">一</TD>
                  <TD width="70">二</TD>
                  <TD width="70">三</TD>
                  <TD width="70">四</TD>
                  <TD width="70">五</TD>
                  <TD width="70">六</TD>
                </TR>
<SCRIPTlanguage="JavaScript"><!--
function cMyBg(myobj){myobj.style.backgroundColor='#D2FFF5';}
function bMyBg(myobj){myobj.style.backgroundColor='transparent';}
vargNum
for(i=0;i<6;i++){
document.write('<tralign=center height="44">')
for(j=0;j<7;j++){
gNum=i*7+j
document.write('<td id="GD'+gNum+'"onMouseOver="mOvr('+gNum+');cMyBg(this)"onMouseOut="mOut();bMyBg(this)"><fontid="SD'+gNum+'" size=5face="Arial"')
if(j==0)document.write('color=red')
if(j==6)
if(i%2==1)document.write('color=red')
elsedocument.write('color=red')
document.write('TITLE=""></font><br><fontid="LD'+gNum+'"size=2style="font-size:9pt;white-space:nowrap;overflow:hidden;cursor:default;"></font></td>')
}
document.write('</tr>')
}
//--></SCRIPT>
            </TABLE></TD>
          <TD vAlign="top" align="middle" width="60" class="btm"><BR><BR><BR><BR>
            <BUTTON style="FONT-SIZE:9pt;" onclick="pushBtm('YU');return false;">年↑</BUTTON>
            <BUTTON style="FONT-SIZE:9pt;" onclick="pushBtm('YD');return false;">年↓</BUTTON>
            <br />
            <BUTTONstyle="FONT-SIZE:9pt;" onClick="pushBtm('MU');return false;">月↑</BUTTON>
            <BUTTON style="FONT-SIZE:9pt;" onClick="pushBtm('MD');return false;">月↓</BUTTON>
            <br />
            <BUTTON style="height:38px;line-height:34px;_width:auto;padding:0;margin:0;FONT-SIZE:9pt;" onclick="pushBtm('');return false;">当月</BUTTON>
          </TD>
      </TR>
      </TBODY>
    </TABLE>
</FORM>
<div id="boxmsg"><a href="http://hi.baidu.com/happy175" title="联系作者" target="_blank">极品日历V1.0</a></div>
<div id="boxcopy">&copy;2010,06,20 By KOEN LEE</div>
</div>
</body>
</html>
页: [1]
查看完整版本: 功能强大的网页版极品日历源码