java jsp中的日历表_用Java编出一个JSP日历

这段代码展示了如何使用Java的Calendar和Date类在JSP中生成一个日历。通过设置日期格式、获取当月的第一天和最后一天,以及初始化周和日期数组,实现了日历的显示。代码还包含了一个主方法进行测试。
摘要由CSDN通过智能技术生成

展开全部

package com.cloudroom.test;

import java.text.DateFormat;

import java.text.ParsePosition;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.TimeZone;

public class CalendarO {

static final public String[] WEEK = new String[] {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

private int[] Weeks; //日历周

private int[] day; //单元格日期对象

private int rows; //日历表行数

private Date lastDay;//当月62616964757a686964616fe59b9ee7ad9431333264663037最后一天

private Date firstDay; //当月第一天

private String dformat = "yyyy-MM-dd";

private TimeZone utz;

public String format(Date d,TimeZone tz,String format) {

DateFormat df = new SimpleDateFormat(format);

df.setTimeZone(tz);

return df.format(d);

}

public Date lastMonthday(Date d) {

Calendar c = Calendar.getInstance();

c.setTime(d);

c.set(Calendar.DATE, 1);

c.roll(Calendar.DATE, -1);

String str = this.format(c.getTime(), utz, dformat);

return strToDate(str);

}

private void initWeek(Date d) {

int fw,lw,week[];

Calendar c = Calendar.getInstance();

c.setTime(this.firstMonthday(d));

fw = c.get(Calendar.WEEK_OF_YEAR);

c.setTime(this.lastMonthday(d));

lw = c.get(Calendar.WEEK_OF_YEAR);

int arrlen = lw-fw+1;

this.setRows(arrlen);

week = new int[arrlen];

for(int i=0; i

if(i==0) {

week[i]=lw;

} else {

week[i]=week[i-1]+1;

}

}

this.setWeeks(week);

}

/**

* 初始化日历数组

* @param d

*/

private void initDay(Date d) {

this.initWeek(d);

int arrlen = this.getWeeks().length*7;

int[] days = new int[arrlen];

Calendar c = Calendar.getInstance();

c.setTime(this.firstMonthday(d));

int num = c.get(Calendar.DAY_OF_WEEK);

c.add(Calendar.DAY_OF_MONTH, -num);

for(int index=0; index

c.add(Calendar.DAY_OF_MONTH, 1);

days[index] = c.get(Calendar.DAY_OF_MONTH);

}

this.setDay(days);

}

/**

* 将短时间格式字符串转换为时间 yyyy-MM-dd

*

* @param strDate

* @return

*/

private Date strToDate(String strDate) {

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

ParsePosition pos = new ParsePosition(0);

Date strtodate = formatter.parse(strDate, pos);

return strtodate;

}

private Date firstMonthday(Date d) {

Calendar c = Calendar.getInstance();

c.setTime(d);

c.set(Calendar.DATE, 1);

return strToDate(this.format(c.getTime(), utz, dformat));

}

public void setDformat(String dformat) {

this.dformat = dformat;

}

public void setRows(int rows) {

this.rows = rows;

}

public void setUtz(TimeZone utz) {

this.utz = utz;

}

public int getRows() {

return rows;

}

public TimeZone getUtz() {

return utz;

}

public String getDformat() {

return dformat;

}

public Date getLastDay() {

return lastDay;

}

public void setLastDay(Date lastDay) {

this.lastDay = lastDay;

}

public Date getFirstDay() {

return firstDay;

}

public void setFirstDay(Date firstDay) {

this.firstDay = firstDay;

}

public int[] getWeeks() {

return Weeks;

}

public void setWeeks(int[] weeks) {

Weeks = weeks;

}

public int[] getDay() {

return day;

}

public void setDay(int[] day) {

this.day = day;

}

public static void main(String[] args) {

CalendarO oj = new CalendarO();

TimeZone tz = TimeZone.getDefault();

oj.setUtz(tz);

String dStr = "2011-11-10";

Date d=oj.strToDate(dStr);

DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

//System.out.println(df.format(oj.lastMonthday(d)));

//System.out.println(df.format(oj.firstMonthday(d)));

oj.initDay(d);

System.out.print(" ");

for(int i=0; i<7; i++) {

System.out.print(WEEK[i]+"");

}

for(int h=0; h

if(h%7==0){

System.out.println();

System.out.print("第"+oj.getWeeks()[h/7]+"周");

}

System.out.print(oj.getDay()[h]+"");

}

}

}

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值