用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[i]="";

  }

  %>

  <%

  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>