在JSP网页上实现月历

类别:Java 点击:0 评论:0 推荐:

在JSP网页上实现月历

JSP、月历

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*,java.text.*" %>
<html>
<head>
<title>月历</title>
</head>
<body style="font-size:12px">
<%!
 /*声明变量*/
 String[] months = {"January", "February", "March", "April", "May", "June",
        "July", "August", "September", "October", "November", "December"};
 String[] months_cn = {"一月", "二月", "三月", "四月", "五月", "六月",
           "七月", "八月", "九月", "十月", "十一月", "十二月"};
 public final static int dom[] = {
         31, 28, 31, 30,
         31, 30, 31, 31,
         30, 31, 30, 31
 };
%>
<%
 /*处理事件*/
 boolean yyok = false;
 int yy = 0, mm = 0;
 String yyString = request.getParameter("year");
 if (yyString != null && yyString.length() >0) {
  try {
   yy=Integer.parseInt(yyString);
   yyok=true;
  }
  catch (NumberFormatException e) {
   out.println("年份不可用");
  }
  Calendar cal = Calendar.getInstance();
  if (!yyok)
   yy = cal.get(Calendar.YEAR);
  String mmString = request.getParameter("month");
  if (mmString == null) {
   mm = cal.get(Calendar.MONTH);
  }
  else {
   for (int i = 0; i < months.length; i++)
    if (months[i].equals(mmString)) {
     mm = i;
     break;
    }
  }
 }
%>
<form name="cal" method=post action="cal.jsp">
 请选择月份:
  <select name="month">
   <%
    /*初始化表单*/
   for (int i = 0; i < months.length; i++) {
    if (i == mm)
     out.print("<option selected value=January>");
    else
     out.print("<option value="+months[i]+">");
    out.print(months_cn[i]);
    out.print("</option>");
   }
   %>
  </select>
 <br>请输入年份:
   <input type="text" size="5" name="year" value="<%=yy%>">&nbsp;&nbsp;
   <input type="submit" value="显示">
</form>
<%
 int lead = 0;
%>
<table border="0" cellpadding="1" cellspacing="1" style="font-size:12px">
<tr height="20"><td colspan="7"><font color="#3399FF"><b><%= months[mm]%>  <%= yy%></b></font></td></tr>
<% GregorianCalendar calendar =  new GregorianCalendar(yy, mm ,1); %>
<tr><td><font color="#FF0000">Sun</font></td><td>Mon</td><td>Tue</td><td>Wed</td>
<td>Thu</td><td>Fri</td><td><font color="#FF0000">Sat</font></td></tr>
<%
 /*下面是显示月历的代码*/
 lead = calendar.get(Calendar.DAY_OF_WEEK)-1;
 int dayInMonth = dom[mm];
 if (calendar.isLeapYear(calendar.get(Calendar.YEAR)) && mm == 1)
  ++dayInMonth;
 out.print("<tr>");
 for(int i = 0; i < lead; i++) {
   out.print("<td>&nbsp;</td>");
 }
 for(int i = 1; i <= dayInMonth; i++) {
  if ((i+lead) % 7 == 0 || (i+lead) % 7 == 1)
   out.print("<td align=\"center\"><font color=\"#FF0000\">"+i+"</font></td>");
  else
   out.print("<td align=\"center\">"+i+"</td>");
  if ((lead+i) % 7 == 0) {
   out.print("</tr></tr>");
  }
 }
 out.print("</tr>");
%>
</table>
</body>
</html>

本文地址:http://com.8s8s.com/it/it11140.htm