一个关于日历的JSP程序!
2004-09-25 16:11
489 查看
一个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>
效果如下图:
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>
效果如下图:
相关文章推荐
- 一个关于日历的JSP程序!
- 用JSP实现的一个日历程序
- jsp中关于session与application的区别----一个小程序
- 用JSP实现的一个日历程序
- 关于指针和形参结合的一个程序的分析
- 关于VC6中基于对话框的程序,往Combox 添加一个CComboBox变量,然后程序编译运行,窗口不出现的问题
- java中的关于Date类中的一个程序
- 只是一个关于表白的小程序而已,如果你不知道怎么拒绝我,那就来掐死我吧。
- 一个显示当前月的日历的java小程序
- 一个关于消息队列通信的小程序
- 手把手做一个JSP入门程序(九):购物车的基本实现(Servlet)
- 一个简单的jsp程序
- 作业:用JAVA写一个简单的关于数字相加的小程序
- 关于用java创建一个.properties文件,程序结果为空的问题
- 关于JNI程序中引用另外一个lib
- 关于 未能加载文件或程序集“ImageMagickNet”或它的某一个依赖项。试图加载格式不正确的程序 的解决办法
- 一个PHP日历程序
- 一个关于struct tm 和 time_t 的结构体的探讨(日历打印)。。。
- 微信小程序开发关于分享功能中怎么定义同一个页面中不同的按钮触发不同的分享内容,或者右上角的分享和页面中分享
- 一个程序中关于多个osgGA::GUIEventHandler同时存在的问题