http://hazeline.vip.sina.com/calendar.htm
这个做得非常好!

解决方案 »

  1.   

    <!-- File name:calendar.jsp -->  
    <!-- 显示任意年、月的日历,可选择不同的年、月。  author:wildfield -->  <%@ page language=\"java\" import=\"java.util.*\" %>  <%! String year;  String month;  %>  <% month=request.getParameter(\"month\");  year =request.getParameter(\"year\");  %>  <html>  <head>  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">  <title>日</title>  <script Language=\"JavaScript\">  <!--  function changeMonth()  {  var mm=\"calendar.jsp?month=\"+document.sm.elements[0].selectedIndex+\"&year=\"  +<%=year%>;  window.open(mm,\"_self\");  }  //--></script>  </head>  <%! String days[]; %>  <%  days=new String[42];  for(int i=0;i<42;i++)  {  days=\"\";  }  %>  <%  Calendar thisMonth=Calendar.getInstance();  if(month!=null&&(!month.equals(\"null\")))  thisMonth.set(Calendar.MONTH, Integer.parseInt(month) );  if(year!=null&&(!year.equals(\"null\")))  thisMonth.set(Calendar.YEAR, Integer.parseInt(year) );  year=String.valueOf(thisMonth.get(Calendar.YEAR));  month=String.valueOf(thisMonth.get(Calendar.MONTH));  thisMonth.setFirstDayOfWeek(Calendar.SUNDAY);  thisMonth.set(Calendar.DAY_OF_MONTH,1);  int firstIndex=thisMonth.get(Calendar.DAY_OF_WEEK)-1;  int maxIndex=thisMonth.getActualMaximum(Calendar.DAY_OF_MONTH);  for(int i=0;i<maxIndex;i++)  {  days[firstIndex+i]=String.valueOf(i+1);  }  %>  <body>  <FORM name=\"sm\" method=\"post\" action=\"calendar.jsp\">     <%=year%>年  <%=Integer.parseInt(month)+1%>月  <table border=\"0\" width=\"168\" height=\"81\">  <div align=center>  <tr>  <th width=\"25\" height=\"16\" bgcolor=\"#FFFF00\"><font color=\"red\">日</font>  </th>  <th width=\"25\" height=\"16\" bgcolor=\"#FFFF00\">一</th>  <th width=\"25\" height=\"16\" bgcolor=\"#FFFF00\">二</th>  <th width=\"25\" height=\"16\" bgcolor=\"#FFFF00\">三</th>  <th width=\"25\" height=\"16\" bgcolor=\"#FFFF00\">四</th>  <th width=\"25\" height=\"16\" bgcolor=\"#FFFF00\">五</th>  <th width=\"25\" height=\"16\" bgcolor=\"#FFFF00\"><font color=\"green\">六</fon  t></th>  </tr>  <% for(int j=0;j<6;j++) { %>  <tr>  <% for(int i=j*7;i<(j+1)*7;i++) { %>  <td width=\"15%\" height=\"16\" bgcolor=\"#C0C0C0\" valign=\"middle\" align=\"ce  nter\">  <a href=\"jump.jsp?year=<%=year%>&month=<%=Integer.parseInt(month)+1%>&d  ate=<%=days[i]%>\" target=\"main\"><%=days[i]%></a></td>  <% } %>  </tr>  <% } %>  </div>  </table>  <table border=\"0\" width=\"168\" height=\"20\">  <tr>  <td width=30%><select name=\"month\" size=\"1\" onchange=\"changeMonth()\" >  <option value=\"0\">一月</option>  <option value=\"1\">二月</option>  <option value=\"2\">三月</option>  <option value=\"3\">四月</option>  <option value=\"4\">五月</option>  <option value=\"5\">六月</option>  <option value=\"6\">七月</option>  <option value=\"7\">八月</option>  <option value=\"8\">九月</option>  <option value=\"9\">十月</option>  <option value=\"10\">十一月</option>  <option value=\"11\">十二月</option>  </select></td>  <td width=28%><input type=text name=\"year\" value=<%=year%> size=4 maxlength  =4></td>  <td>年</td>  <td width=28%><input type=submit value=\"提交\"></td>  </tr>  </table>  </FORM>  <script Language=\"JavaScript\">  <!--  document.sm.month.options.selectedIndex=<%=month%>;  
    //-->  </script>  </body>  </html>