java据我所知还没有很好的解决方法! 
以下是我收藏的javascript的方法,你可以研究一下!

解决方案 »

  1.   

    function changeLong() 
    {
    var y,m,ly,lm,id,im,iy,yangy,yangm,deltm,miny,tt;
    CLD.SY.selectedIndex=CLD.D1.selectedIndex;
    CLD.SM.selectedIndex=CLD.D2.selectedIndex;
    yangm=0;yangy=0;
    tt=true;
    while (tt)
    {
    yangm=0;yangy=0;
    changeCld();
      for(i=0;i<42;i++) 
      {
         sD = i - cld.firstWeek;
         if(sD>-1 && sD<cld.length) 
         { //日期内
         if ((cld[sD].lMonth==CLD.D2.selectedIndex+1)&&(cld[sD].lYear==CLD.D1.selectedIndex+1900))
         {
    yangy=CLD.SY.selectedIndex+1900; yangm=CLD.SM.selectedIndex ;
    tt=false;
    break;
    }
         }
      }
      if (!tt) break;
      
    pushBtm('MD');
    changeCld();//alert(CLD.SY.selectedIndex+" "+CLD.SM.selectedIndex);  for(i=0;i<42;i++) 
      {
         sD = i - cld.firstWeek;
         if(sD>-1 && sD<cld.length) 
         { //日期内
         if ((cld[sD].lMonth==CLD.D2.selectedIndex+1)&&(cld[sD].lYear==CLD.D1.selectedIndex+1900))
         {
    yangy=CLD.SY.selectedIndex+1900; yangm=CLD.SM.selectedIndex ;
    tt=false;
    break;
    }
         }
      }
    break;   
    }
    //alert(yangy+" "+yangm);
    //CLD.SY.selectedIndex=yangy;//-1900;
    //pushBtm('YU');
    //pushBtm('YD');
    CLD.SM.selectedIndex=yangm; 
    pushBtm('MD');
    pushBtm('MU');}
    //changeLong endfunction 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,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"><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 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();
    }
    //-->
    </SCRIPT><style>.todyaColor {
    BACKGROUND-COLOR: aqua
    }
    </style><META content="Microsoft FrontPage 4.0" name=GENERATOR></HEAD>
    <BODY background=jpg/back/nongli.gif oncontextmenu=self.event.returnValue=false 
    onload=initial() topMargin=0>
    <TABLE align=center border=1 borderColor=#ffcc00 cellPadding=0 cellSpacing=0 
    width=700>
     <TBODY>
     <TR>
       <TD>
         <SCRIPT language=JavaScript><!--
      if(navigator.appName == "Netscape" || parseInt(navigator.appVersion) < 4)
      document.write("<h1>你的浏览器无法执行此程序。</h1>此程序在 IE4 以后的版本才能执行!!")
    //--></SCRIPT>
      

  2.   

    <DIV id=detail 
         style="HEIGHT: 16px; LEFT: 337px; POSITION: absolute; TOP: 200px; WIDTH: 302px"></DIV>
         <FORM name=CLD>
         <DIV align=center>
         <TABLE align=center border=4 borderColorDark=#cc9900 height=259 
           width=698><CENTER>
           <CENTER></CENTER></CENTER>
           <TBODY>
           <TR>
             <TD align=middle height=255 vAlign=top width=254>
               <DIV align=center>
               <CENTER>
               <TABLE border=1 width="100%" COLSPAN="2">
                 <CENTER>
                 <CENTER><FONT size=2 style="FONT-SIZE: 9pt">
                 <TBODY>
                 <TR>
                   <TD width="100%">
                     <P align=center><FONT size=2 style="FONT-SIZE: 9pt"><FONT 
                     color=red 
                     style="FONT-SIZE: 10.8pt">本地计算机时间:</FONT></FONT><BR><FONT 
                     color=#000080 face=ARIAL id=Clock size=3 
    align="center"></FONT>
                     </TD>
                   </TBODY></TABLE></CENTER></DIV>
               <DIV align=center>
               <CENTER>
               <TABLE border=1 height=1 width="100%">
                 <TBODY>
                 <TR>
                   <TD height=1 width="100%">
                     <TABLE height=1 width="100%">
                       <CENTER>
                       <CENTER><FONT id=tSave 
                       style="COLOR: red; FONT-FAMILY: Wingdings; FONT-SIZE: 18pt"></FONT>
                       <TBODY>
                       <TR>
                         <TD height=1 width="88%" nowrap><FONT size=2 style="FONT-SIZE: 9pt">
                 <FONT size=2><FONT 
                           style="FONT-SIZE: 9pt"><FONT 
                           color=#0000ff>公历</FONT>年</FONT><FONT color=#ffffff 
                           style="FONT-SIZE: 9pt"> <SELECT name=SY 
                           onchange=changeCld() style="FONT-SIZE: 9pt"> 
                             <SCRIPT language=JavaScript><!--  
               for(i=1900;i<2050;i++) document.write('<option>'+i)  
               //--></SCRIPT>
                           </SELECT> </FONT>月<FONT color=#ffffff 
                           style="FONT-SIZE: 9pt"> <SELECT name=SM 
                           onchange=changeCld() style="FONT-SIZE: 9pt"> 
                             <SCRIPT language=JavaScript><!--  
               for(i=1;i<13;i++) document.write('<option>'+i)  
               //--></SCRIPT>
                           </SELECT> </FONT></FONT>
                           </font>
                         <TD height=3 vAlign=top width="12%" rowspan="3">
                           <FONT size=2 style="FONT-SIZE: 9pt">
                           <DIV align=center 
                           style="HEIGHT: 1px; WIDTH: 4px"><BUTTON 
                           onclick="pushBtm('MU')" 
                           style="FONT-SIZE: 9pt">月↑</BUTTON></DIV><BUTTON 
                           onclick="pushBtm('')" 
                           style="FONT-SIZE: 9pt">当月</BUTTON><BR><BUTTON 
                           onclick="pushBtm('MD')" 
                           style="FONT-SIZE: 9pt">月↓</BUTTON> 
                           <P align=left> </P></font> 
                       <TR>
                         <TD height=1 width="88%" nowrap>
                           <P align=left><FONT size=2><FONT 
                           style="FONT-SIZE: 9pt"><FONT 
                           color=#0000ff>阴历</FONT>年</FONT><FONT color=#ffffff 
                           style="FONT-SIZE: 9pt"> <SELECT name=D1 
                           onchange=changeLong() style="FONT-SIZE: 9pt"> 
                             <SCRIPT language=JavaScript><!--  
               for(i=1900;i<2050;i++) document.write('<option>'+i)  
               //--></SCRIPT>
                           </SELECT> </FONT>月<FONT color=#ffffff 
                           style="FONT-SIZE: 9pt"> <SELECT name=D2 
                           onchange=changeLong() style="FONT-SIZE: 9pt"> 
                             <SCRIPT language=JavaScript><!--  
               for(i=1;i<13;i++) document.write('<option>'+i)  
               //--></SCRIPT>
                           </SELECT> </FONT></FONT></P>
      

  3.   

    <TR>
                         <CENTER>
                         <TD align=middle height=1 vAlign=center 
                           width="88%"><BUTTON onclick="pushBtm('YU')" 
                           style="FONT-SIZE: 9pt">年↑</BUTTON> <BUTTON 
                           onclick="pushBtm('YD')" 
                           style="FONT-SIZE: 9pt">年↓</BUTTON>  </TD></CENTER>
                       </TR>
                       </TBODY></TABLE>
                     <CENTER>
                     <TABLE border=1 borderColorDark=#ffffcc height=1 
                       width="100%"><TBODY>
                       <TR>
                         <TD height=1 width="100%"><FONT color=#0 
                           style="FONT-SIZE: 10.8pt">     
                           阴历存在跨月情况,如果查找到的阴历月跨两个公历月,用<FONT   
                           color=blue>[月↑][月↓]</FONT>翻动可以找到你想要的确切日期。</FONT></TD></TR></TBODY></TABLE></CENTER></CENTER></CENTER></TD></TR></TBODY></TABLE></CENTER></DIV></CENTER></CENTER>  
               </font>  
             <TD align=middle height=255 width=418>  
               <DIV   
               style="HEIGHT: 108px; LEFT: 344px; POSITION: absolute; TOP: 178px; WIDTH: 347px; Z-INDEX: -1">  
                  
               <P><FONT id=YMBG   
               style="COLOR: #00ccff; FONT-FAMILY: 'Arial Black'; FONT-SIZE: 20pt"> </FONT>   
               </P></DIV>  
               <DIV align=center>  
               <CENTER>  
               <TABLE border=0 cellSpacing=1 height=27>  
                 <TBODY>  
                 <TR>  
                   <TD align=middle bgColor=#000080 colSpan=7 height=24><FONT   
                     color=#000080 size=2 style="FONT-SIZE: 9pt">月</FONT> <FONT   
                     color=#ffffff face=宋体 id=GZ size=4></FONT><BR></TD></TR>  
                 <TR align=middle bgColor=#e0e0e0>  
                   <TD align=middle bgColor=#99ccff height=1 width=54><FONT   
                     size=2>日</FONT></TD>  
                   <TD align=middle bgColor=#99ccff height=1 width=54><FONT   
                     size=2>一</FONT></TD>  
                   <TD align=middle bgColor=#99ccff height=1 width=54><FONT   
                     size=2>二</FONT></TD>  
                   <TD align=middle bgColor=#99ccff height=1 width=50><FONT   
                     size=2>三</FONT></TD>  
                   <TD align=middle bgColor=#99ccff height=1 width=54><FONT   
                     size=2>四</FONT></TD>  
                   <TD align=middle bgColor=#99ccff height=1 width=54><FONT   
                     size=2>五</FONT></TD>  
                   <TD align=middle bgColor=#99ccff height=1 width=54><FONT   
                     size=2>六</FONT></TD></TR>  
                 <SCRIPT language=JavaScript><!--                                                                                                    
               var gNum                                                                                                    
               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=2 face="Arial Black"')                                                                                                    
                     if(j == 0) document.write(' color=red')                                                                                                    
                     if(j == 6)                                                                                                    
                        if(i%2==1) document.write(' color=red')                                                                                                    
                           else document.write(' color=green')                                                                                                    
                     document.write(' TITLE=""> </font><br><font id="LD' + gNum + '" size=2 style="font-size:9pt"> </font></td>')                                                                                                    
                  }                                                                                                    
                  document.write('</tr>')                                                                                                    
               }                                                                                                    
               //--></SCRIPT>  
                 </TBODY></TABLE></CENTER></DIV></TD></TR></TBODY></TABLE></DIV></FORM>  
       </TD></TR></TBODY></TABLE></BODY></HTML>  
      

  4.   

    PFPF 没想到有人钻研这个……