欢迎光临
我们一直在努力

最完美的JS万年历(二)

建站超值云服务器,限时71元/月

///////////////////////////////////////////////////////////////////////////////

var cld;

function drawcld(sy,sm) {
   var i,sd,s,size;
   cld = new calendar(sy,sm);

      if(sy>1949 && sy<2051) ydisplay = 建国 + (((sy-1949)==1)?元:sy-1949);
      if(sy<1949 && sy>1900) ydisplay = 公元 + (sy);

   gz.innerhtml = ydisplay +年 农历 + 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) { //日期内
         sobj.innerhtml = sd+1;

         if(cld[sd].istoday) sobj.classname = todyacolor; //今日颜色

         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<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 = <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">农历+(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;
       }
    }
}

//清除详细日期资料
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 initialize() {
   dstyle = detail.style;
   cld.sy.selectedindex=ty-1900;
   cld.sm.selectedindex=tm;
   drawcld(ty,tm);
   cld.tz.selectedindex=getcookie("tz");
   changetz();
   tick();
}

function terminate(){
   setcookie("tz",cld.tz.selectedindex);
}

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 "";
   }
}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 最完美的JS万年历(二)
分享到: 更多 (0)

相关推荐

  • 暂无文章