在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%>"> <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> </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> 
|