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 + -
显示快捷键?