一个JSP+JAVABEANS实现的WEB日历程序,主要使用了Calendar类!

monthBean.java
package test;
import java.text.DateFormat;
import java.text.DateFormatSymbols;
import java.util.*;public class monthBean { 
public final static int[]DAYSINMONTH={31,28,31,30,31,30,31,31,30,31,30,31}; 
public String []monthNames=null; 
protected DateFormatSymbols symbols=null; 
protected Calendar cal=Calendar.getInstance();  
protected int today=cal.get(Calendar.DAY_OF_MONTH);  
protected int month=cal.get(Calendar.MONTH); 
protected int year=cal.get(Calendar.YEAR); public monthBean() {    
  symbols=new DateFormatSymbols();    
  monthNames=symbols.getMonths();  
  } 
public void setMonth(int monthArg){   
   this.month=monthArg;  
   } 
public void setYear(int yearArg) {
   this.year=yearArg;
   } 
public void setMonth(String monthArg) {    
   try{   
      int month=Integer.parseInt(monthArg);      
      setMonth(month);   
     }catch(Exception exc){
     } 
   } 
public void setYear(String yearArg){      
   try{    
       int year=Integer.parseInt(yearArg);
       setYear(year); }catch(Exception exc){
       } 
     }
public String getMonthName() {  
      return monthNames[cal.get(Calendar.MONTH)];
      } 
public int getToday(){
       return today;
       }
public int getStartCell() {
     Calendar beginOfMonth=Calendar.getInstance();     
     beginOfMonth.set(year,month,0);    
     return beginOfMonth.get(Calendar.DAY_OF_WEEK);
     }  
public int getEndCell() {
     cal.set(year,month,1); int endCell=DAYSINMONTH[month]+getStartCell()-1;   
     if(month==Calendar.FEBRUARY && ((GregorianCalendar)cal).isLeapYear(year)){       
          endCell++;   
           }  
     return endCell; 
    }  
public void update()  {  
     cal.set(this.year,this.month,1); 
    }  
public String getDayName(int day,boolean longFormat) {
    if(longFormat)   
       return symbols.getWeekdays()[day];     
    return symbols.getShortWeekdays()[day];
    }
  }

month.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="test.monthBean"%>
<jsp:useBean id="cal"  class="test.monthBean" scope="request"/>
<% 
   int today=cal.getToday();
%>
<html>
<head>
<title>
日历
</title>
</head>
<body bgcolor="silver" ><br><br><br>
<table border="1" align="center" width="40%" height="100"><tr bgcolor="silver" >
<td colspan="7"> <font size="+2">
<%=cal.getMonthName()%>
</font></td></tr>
<tr bgcolor="black" align="center">
<% for(int i=1;i<8;i++) {
   out.print("<td width=/"70/">");
   out.print("<font size/"-1/" color=/"white/">");
   out.print(cal.getDayName(i,true));
out.print("</front> </td>");
}  %>
</tr>
<% int startcell=cal.getStartCell();
   int endcell=cal.getEndCell();
    for(int cellNo=0,day=1;cellNo<42;cellNo++) {
          if(cellNo%7==0) { out.print("<tr>"); }
    out.print("<td valign=top height=57");
           if(cellNo<startcell||cellNo>endcell) {
               out.print(" bgcolor=/"gray/">"); }
 else {  
              if(day==today){  //如果为当前日期,背景色设为绿色
                   out.print(" bgcolor=/"green/">");
                        }
              else
                   out.print(">");
%>
<%=day%>
 <%  
     day++;
 }
    out.println("</td>");
            if(cellNo+1%7==0) {
                 out.print("</tr>"); }
    }   //end for loop
 %>   </table>
</body>
</html>

  效果如下图: