http://www.csdn.net/develop/read_article.asp?id=14890

解决方案 »

  1.   

    先作一个java类,实现公历转农历,然后再实现农历的节日。
      

  2.   

    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<149) 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<149) 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 = 16;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,cDayif(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"><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 changeTZ() {
    CITY.innerHTML = CLD.TZ.value.substr(6)
    setCookie("TZ",CLD.TZ.selectedIndex)
    }function tick() {
    var today
    today = new Date()
    Clock.innerHTML = today.toLocaleString().replace(/(年|月)/g, "/").replace(/日/, "");
    Clock.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);CLD.TZ.selectedIndex=getCookie("TZ");
    changeTZ();
    tick();
    }