monthbean.java
来自「基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰」· Java 代码 · 共 434 行
JAVA
434 行
package com.yuanchung.sales.util;
import java.text.DateFormat;
import java.text.DateFormatSymbols;
import java.util.*;
import org.apache.log4j.Logger;
import com.yuanchung.sales.struts.taskevent.action.TaskAction;
/**
*
* @author 陆文邦
* @function 处理日期控件类;
*
*/
@SuppressWarnings("unchecked")//剔除未检查的警告;
public class MonthBean {
private static Logger logger = Logger.getLogger(MonthBean.class);// 记载日志
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 static 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);// 当前年份;
private String monthName;// 当前月份名称;
private String dayName;
private int startCell;// 当前月开始格数;
private int endCell;// 当前月结束格数;
private int monthDays;// 该月的天数;
private int tempMonth = month;//把当前月赋值给临时变量;
private int dayOfYearByLast;//年之月第一日;
private int dayOfYearByFirst;//年之月最后日;
private int weekOfYearByFirst;//年之月第一周;
private int dayOfYear; //年之日;
private int weekOfYear;//年之周;
private int dayOfMonth;//月之日;
public int getDayOfYear() {
return dayOfYear;
}
public void setDayOfYear(int dayOfYear) {
this.dayOfYear = dayOfYear;
}
public int getWeekOfYear() {
return weekOfYear;
}
public void setWeekOfYear(int weekOfYear) {
this.weekOfYear = weekOfYear;
}
/**
*
* 空构造函数;
*
* @author 陆文邦
*/
public MonthBean() {
Calendar c = Calendar.getInstance();
cal=(Calendar) c.clone();// 当前时间;
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
dayOfYear = cal.get(Calendar.DAY_OF_YEAR); //年之日;
weekOfYear = cal.get(Calendar.WEEK_OF_YEAR);//年之周;
dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);//月之日;
symbols = new DateFormatSymbols();// 本地化格式工具;
monthNames = symbols.getMonths();
}
/**
* @author 陆文邦;
* @function 页面上跳转到下个月;
* @param add
*/
public MonthBean(int add) {
cal.add(Calendar.MONTH, 1);// 向下滚动;
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
dayOfYear = cal.get(Calendar.DAY_OF_YEAR); //年之日;
weekOfYear = cal.get(Calendar.WEEK_OF_YEAR);//年之周;
dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);//月之日;
symbols = new DateFormatSymbols();// 本地化格式工具;
monthNames = symbols.getMonths();
}
/**
* @author 陆文邦;
* @function 页面上跳转到上个月;
* @param month
*/
public MonthBean(String type) {
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)-1);// 向上滚动;
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
dayOfYear = cal.get(Calendar.DAY_OF_YEAR); //年之日;
weekOfYear = cal.get(Calendar.WEEK_OF_YEAR);//年之周;
dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);//月之日;
symbols = new DateFormatSymbols();// 本地化格式工具;
monthNames = symbols.getMonths();
}
/**
*
* 本周构造函数;
*
* @author 陆文邦
*/
public MonthBean(Integer yearr,Integer monthh,String weekOfYearr) {
cal.set(Calendar.MONTH, monthh);
cal.set(Calendar.YEAR, yearr);
cal.set(Calendar.WEEK_OF_YEAR, Integer.parseInt(weekOfYearr));
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
dayOfYear = cal.get(Calendar.DAY_OF_YEAR); //年之日;
weekOfYear = cal.get(Calendar.WEEK_OF_YEAR);//年之周;
dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);//月之日;
symbols = new DateFormatSymbols();// 本地化格式工具;
monthNames = symbols.getMonths();
}
/**
* @author 陆文邦;
* @function 页面上跳转到下周;
* @param add
*/
public MonthBean(int add,int week) {
cal.add(Calendar.DATE, 7);// 向下滚动一周;
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
dayOfYear = cal.get(Calendar.DAY_OF_YEAR); //年之日;
weekOfYear = cal.get(Calendar.WEEK_OF_YEAR);//年之周;
dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);//月之日;
symbols = new DateFormatSymbols();// 本地化格式工具;
monthNames = symbols.getMonths();
}
/**
* @author 陆文邦;
* @function 页面上跳转到上周;
* @param month
*/
public MonthBean(String type,String week) {
cal.set(Calendar.DATE, cal.get(Calendar.DATE)-7);// 向上滚动一周;
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
dayOfYear = cal.get(Calendar.DAY_OF_YEAR); //年之日;
weekOfYear = cal.get(Calendar.WEEK_OF_YEAR);//年之周;
dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);//月之日;
symbols = new DateFormatSymbols();// 本地化格式工具;
monthNames = symbols.getMonths();
}
/**
* @author 陆文邦
* @param yr
* @param dayYear
* @param param1
* @param param2
* @time 2008-12-15
*/
public MonthBean(int yr,int dayYear,String param1,String param2) {
cal.set(Calendar.YEAR, yr);
cal.set(Calendar.DAY_OF_YEAR, dayYear);
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
dayOfYear = cal.get(Calendar.DAY_OF_YEAR); //年之日;
weekOfYear = cal.get(Calendar.WEEK_OF_YEAR);//年之周;
dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);//月之日;
symbols = new DateFormatSymbols();// 本地化格式工具;
monthNames = symbols.getMonths();
}
/**
* @author 陆文邦
* @create:2008-12-12;
*/
public MonthBean(Integer aaa,Integer bbb,Integer ccc) {
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
dayOfYear = cal.get(Calendar.DAY_OF_YEAR); //年之日;`
weekOfYear = cal.get(Calendar.WEEK_OF_YEAR);//年之周;
dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);//月之日;
symbols = new DateFormatSymbols();// 本地化格式工具;
monthNames = symbols.getMonths();
}
/**
* @author 陆文邦;
* @function 月构造函数;
* @time 2008-12-20;
* @param year
* @param month
*/
public MonthBean(Integer year,Integer month,String param1,String param2,String param3,String param4) {
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
dayOfYear = cal.get(Calendar.DAY_OF_YEAR); //年之日;
weekOfYear = cal.get(Calendar.WEEK_OF_YEAR);//年之周;
dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);//月之日;
symbols = new DateFormatSymbols();// 本地化格式工具;
monthNames = symbols.getMonths();
}
/**
* 程序员: 陆文邦
* 方法功能:构造函数;
* @param year
* @param month
* @param dayOfMonth
* @param type
*/
public MonthBean(Integer year,Integer month,Integer dayOfMonth,String type) {
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
//cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
dayOfYear = cal.get(Calendar.DAY_OF_YEAR); //年之日;
weekOfYear = cal.get(Calendar.WEEK_OF_YEAR);//年之周;
dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);//月之日;
symbols = new DateFormatSymbols();// 本地化格式工具;
monthNames = symbols.getMonths();
}
/**
* 程序员: 陆文邦
* 方法功能:上下月构造函数;
* @param year
* @param month
* @param dayOfMonth
* @param type
*/
public MonthBean(String type,Integer year,Integer month){
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
dayOfYear = cal.get(Calendar.DAY_OF_YEAR); //年之日;
weekOfYear = cal.get(Calendar.WEEK_OF_YEAR);//年之周;
dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);//月之日;
symbols = new DateFormatSymbols();// 本地化格式工具;
monthNames = symbols.getMonths();
}
/**
* @author 陆文邦
* @param monthArg
* 设置monthArg为月份;
*/
public void setMonth(int monthArg) {// 设置月数;
this.month = monthArg;
}
/**
* @author 陆文邦
* @param yearArg
* 设置yearArg为年份;
*/
public void setYear(int yearArg) {// 设置年份;
this.year = yearArg;
}
/**
*
* @author 陆文邦
* @param monthArg
* 设置monthArg为月份;
*/
public void setMonth(String monthArg) {
try {
int month = Integer.parseInt(monthArg);
setMonth(month);
} catch (Exception exc) {
exc.printStackTrace();
}
}
/**
*
* @author 陆文邦
* @param yearArg
* 设置yearArg为年份;
*/
public void setYear(String yearArg) {
try {
int year = Integer.parseInt(yearArg);
setYear(year);
} catch (Exception exc) {
exc.printStackTrace();
}
}
/**
* @author 陆文邦
* @function 获取当前月份第一天是星期几;
* @param
* @return int 返回当月第一天是在星期几;
*/
public int getStartCell() {
int startCell=0;
Calendar beginOfMonth = Calendar.getInstance();// 定义一个新的日历
beginOfMonth.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), 0);// 把新日历的日期设置成当月0号;
startCell = beginOfMonth.get(Calendar.DAY_OF_WEEK);
return startCell;// 返回当月1号是第一周的哪天开始;
}
/**
* @author 陆文邦;
* @function 获取当前月份所剩下格子数目;
* @return 当前月份所剩下格子数目
*/
public int getEndCell() {
int endCell = 0;
Calendar endOfMonth = Calendar.getInstance();// 定义一个新的日历
endOfMonth.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), 1);// 设置当前的时间为该月的1号;
if(getStartCell()!=7) {
endCell = DAYSINMONTH[cal.get(Calendar.MONTH)] + getStartCell() - 1;// 计算所剩下的日期格子数;
} else {
endCell = DAYSINMONTH[cal.get(Calendar.MONTH)] - 1;// 计算所剩下的日期格子数;
}
if (cal.get(Calendar.MONTH) == Calendar.FEBRUARY
&& ((GregorianCalendar) endOfMonth).isLeapYear(cal.get(Calendar.YEAR))) {// 格林时间是否为闰年;
endCell++;
}// 判断是否闰年,如果是,二月份日期数量加1;
return endCell;
}
/**
* @author 陆文邦;
* @function 把日期参数day根据longFormar判断是否按本地格式化;
* @param day
* 日期参数;
* @param longFormat
* 是否要格式化;
* @return 返回已经被本地化格式的周日期格式;
*/
public String getDayName(int day, boolean longFormat) {
if (longFormat) {
return symbols.getWeekdays()[day];
} else {
return symbols.getShortWeekdays()[day];
}
}
/**
* @author 陆文邦;
* @function 获取当前月份;
* @return int 返回当前月份;
*/
public int getMonth() {
return cal.get(Calendar.MONTH);
}
/**
* @author 陆文邦;
* @function 获取当前本地化月份;
* @return int 返回当前本地化月份;
*/
public String getMonthName() {
return monthNames[cal.get(Calendar.MONTH)];
}
/**
* @author 陆文邦;
* @function 获取当前年份;
* @return int 返回当前年份;
*/
public int getYear() {
return cal.get(Calendar.YEAR);
}
public int getDayOfMonth() {
return cal.get(Calendar.DAY_OF_MONTH);
}
/**
* @author 陆文邦;
* @function 获取月份中的当天日期;
* @return int 返回月份中的当天日期;
*/
public int getToday() {
Calendar c = Calendar.getInstance();
return c.get(Calendar.DAY_OF_MONTH);
}
/**
* @author 陆文邦;
* @function 获取该月份的日期数量;
* @return int 返回月份中当天日期;
*/
public int getMonthDays() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.DATE, cal.get(Calendar.DATE) - 1);
return cal.get(Calendar.DAY_OF_MONTH);
}
/**
* @author 陆文邦;
* @function 获取该月份的第一天是一年中的第几天;
* @return int 本月第一天的年之日;
*/
public int getDayOfYearByFirst() {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, cal.get(Calendar.YEAR));
c.set(Calendar.MONTH,cal.get(Calendar.MONTH));
c.set(Calendar.DATE, 1);
return c.get(Calendar.DAY_OF_YEAR);
}
/**
* @author 陆文邦;
* @function 获取该月份的第一天是一年中的第几周;
* @return int 本月第一天的年之周;
*/
public int getWeekOfYearByFirst() {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, cal.get(Calendar.YEAR));
c.set(Calendar.MONTH,cal.get(Calendar.MONTH));
c.set(Calendar.DATE, 1);
return c.get(Calendar.WEEK_OF_YEAR);
}
/**
* @author 陆文邦;
* @function 获取该月份的最后天是一年中的第几天;
* @return int 本月最后一天的年之日;
*/
public int getDayOfYearByLast() {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, cal.get(Calendar.YEAR));
c.set(Calendar.MONTH,cal.get(Calendar.MONTH));
c.set(Calendar.DATE, getMonthDays());
return c.get(Calendar.DAY_OF_YEAR);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?