⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tsdateutil.java.svn-base

📁 一个timesheet程序,用来统计开发人员的度量衡web在线程序.用于软件行业
💻 SVN-BASE
字号:
package com.nsi.util.tsdate;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;

import com.nsi.constants.AppConstants;
import com.nsi.util.ValHelper;

/**
 * @author Chris Ye, created on Sep 24, 2008
 * 
 * TsDateUtil
 */
public final class TsDateUtil
{
	private Map<Integer, String> monthstrmap;
	private Map<String, Integer> monthmap;
	/**
	 * private constructor of TsDateUtil, prevent instantiation
	 */
	private TsDateUtil()
	{
		init();
	}
	private void init()
	{
		monthstrmap = new HashMap<Integer, String>();
		monthstrmap.put(new Integer(0), "JAN");
		monthstrmap.put(new Integer(1), "FEB");
		monthstrmap.put(new Integer(2), "MAR");
		monthstrmap.put(new Integer(3), "APR");
		monthstrmap.put(new Integer(4), "MAY");
		monthstrmap.put(new Integer(5), "JUN");
		monthstrmap.put(new Integer(6), "JUL");
		monthstrmap.put(new Integer(7), "AUG");
		monthstrmap.put(new Integer(8), "SEP");
		monthstrmap.put(new Integer(9), "OCT");
		monthstrmap.put(new Integer(10), "NOV");
		monthstrmap.put(new Integer(11), "DEC");
		monthmap = new HashMap<String, Integer>();
		monthmap.put("JAN", new Integer(0));
		monthmap.put("FEB", new Integer(1));
		monthmap.put("MAR", new Integer(2));
		monthmap.put("APR", new Integer(3));
		monthmap.put("MAY", new Integer(4));
		monthmap.put("JUN", new Integer(5));
		monthmap.put("JUL", new Integer(6));
		monthmap.put("AUG", new Integer(7));
		monthmap.put("SEP", new Integer(8));
		monthmap.put("OCT", new Integer(9));
		monthmap.put("NOV", new Integer(10));
		monthmap.put("DEC", new Integer(11));
	}
	private static class TsDateUtilHolder
	{
		static final TsDateUtil dateUtil = new TsDateUtil();
	}
	/**
	 * @return an instance of TsDateUtil
	 */
	public static TsDateUtil getInstance()
	{
		return TsDateUtilHolder.dateUtil;
	}
	public String getMonthStr(Calendar cal)
	{
		int i = cal.get(Calendar.MONTH);
		return monthstrmap.get(new Integer(i));
	}
	public int getMonthNumber(String smnth)
	{
		int month = 0;
		if(ValHelper.getInstance().isNotNullAndEmpty(smnth))
		{
			month = monthmap.get(smnth.trim());
		}
		return month;
	}
	public String getDateStr(Calendar calendar)
	{
		String mnth = getMonthStr(calendar);
		int day = calendar.get(Calendar.DATE);
		return mnth + "-" + getDayStr(day) + "-" + calendar.get(Calendar.YEAR);
	}
	public String getDBDateStr(Calendar calendar)
	{
		String mnth = getMonthStr(calendar);
		return calendar.get(Calendar.DATE) + "-" + mnth + "-" + calendar.get(Calendar.YEAR);
	}
	public String getNtsWeek( Calendar calendar )
	{
		int day0fweek = calendar.get(Calendar.DAY_OF_WEEK);
		calendar.add(Calendar.DATE, (1 - day0fweek));
		return getDBDateStr(calendar);
	}
	public String getDefaultBegin()
	{
		Calendar defaultCal = new GregorianCalendar();
		int day0fweek = defaultCal.get(Calendar.DAY_OF_WEEK);
		defaultCal.add(Calendar.DATE, (1 - day0fweek));
		return getDateStr( defaultCal );
	}
	public String getDefaultDateStr()
	{
		Calendar defaultCal = new GregorianCalendar();
		return getDateStr( defaultCal );
	}
	public String getDefaultMonthMinusStr()
	{
		Calendar defaultCal = new GregorianCalendar();
		defaultCal.add(Calendar.MONTH, -1);
		return getMonthStr(defaultCal);
	}
	public int getDefaultYearByMinusMonth()
	{
		Calendar defaultCal = new GregorianCalendar();
		defaultCal.add(Calendar.MONTH, -1);
		return defaultCal.get(Calendar.YEAR);
	}
	public String getDefaultEndDateStr()
	{
		Calendar defaultCal = new GregorianCalendar();
		return getDateStr( defaultCal );
	}
	public String getDefaultEndStr()
	{
		return "DEC-30-2999";
	}
	public String getDefaultMon()
	{
		Calendar defaultCal = new GregorianCalendar();
		String mnth = getMonthStr(defaultCal);
		return mnth;
	}
	public String getDefaultYear()
	{
		Calendar defaultCal = new GregorianCalendar();
		int year = defaultCal.get(Calendar.YEAR);
		return year + AppConstants.EMPTY_STRING;

	}
	public String getMonthYearPlusStr(String smonth, String syear)
	{
		String resultstr =AppConstants.EMPTY_STRING;
		if ( ( ValHelper.getInstance().isNotNullAndEmpty(smonth)) && ( ValHelper.getInstance().isNotNullAndEmpty(syear)))
		{
			int mnth = getMonthNumber(smonth.trim());
			Calendar cal = new GregorianCalendar(1, mnth, (Integer.parseInt(syear)));
			cal.roll(Calendar.MONTH, true);
			resultstr = getDateStr(cal);
		}
		return resultstr;
	}
	public Date truncDate(Date date)
	{
		Calendar cal = Calendar.getInstance();
		cal.setTime(date);
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MILLISECOND, 0);
		return cal.getTime();
	}
	public Calendar stringToDate( String datestr )
	{
		Calendar cal = Calendar.getInstance();
		int mnth = Integer.parseInt(datestr.substring(0, 2));
		int day = Integer.parseInt(datestr.substring(3, 5));
		int year = Integer.parseInt(datestr.substring(6, 10));
		cal.set(Calendar.YEAR, year);
		cal.set(Calendar.DAY_OF_MONTH, day);
		cal.set(Calendar.MONTH, mnth-1);
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MILLISECOND, 0);
		return cal;
	}
	public Calendar StrToDate(String sDate)
	{
		Calendar cal = new GregorianCalendar();
		int day = Integer.parseInt(sDate.substring(4, 6));
		int mnth = getMonthNumber(sDate.substring(0, 3));
		int year = Integer.parseInt(sDate.substring(7, 11));
		cal.set(Calendar.YEAR, year);
		cal.set(Calendar.DAY_OF_MONTH, day);
		cal.set(Calendar.MONTH, mnth);
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MILLISECOND, 0);
		return cal;
	}
	public Calendar truncCalendar()
	{
		Calendar cal = new GregorianCalendar();
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MILLISECOND, 0);
		return cal;
	}
	public Calendar fourWksLaterCalendar()
	{
		Calendar cal = new GregorianCalendar();
		int day0fweek = cal.get(7);
		cal.add(5, 1 - day0fweek);
		return cal;
	}
	public String getWeekBeginString(String sDate, int wknumber)
	{
		Calendar cal = StrToDate(sDate);
		return getWeekBeginString(cal,wknumber);
	}
	public String getWeekBeginString(int wknumber)
	{
		Calendar defaultCal = new GregorianCalendar();
		return getWeekBeginString(defaultCal,wknumber);
	}
	public String getWeekBeginString(Calendar cal, int wknumber)
	{
		int day0fweek = cal.get(Calendar.DAY_OF_WEEK);
		cal.add(Calendar.DATE, (1 - day0fweek) + wknumber * 7);
		return getDateStr( cal );
	}
	public String getDateStringinWeek(String sDate, int weekday)
	{
		Calendar cal = StrToDate(sDate);
		return getDateStringinWeek( cal, weekday);
	}
	public String getDateStringinWeek(Calendar cal, int weekday)
	{
		cal.add(Calendar.DATE, weekday);
		return getDateStr( cal );
	}
	public Date getWeekBeginDate(Calendar cal, int wknumber)
	{
		int day0fweek = cal.get(Calendar.DAY_OF_WEEK);
		cal.add(Calendar.DATE, (1 - day0fweek) + wknumber * 7);
		return cal.getTime();
	}
	public String getMonthByWeekDay(String sDate, int wkday)
	{
		Calendar cal = StrToDate(sDate);
		int day0fweek = cal.get(Calendar.DAY_OF_WEEK);
		cal.add(Calendar.DATE, (1 - day0fweek) + wkday);
		return getMonthStr(cal);
	}
	public long daysBetween(Date d1, Date d2)
	{
		return ((d2.getTime() - d1.getTime() + 60 * 60 * 1000L) / (60 * 60 * 1000L * 24));
	}
	public boolean isHistroy(String strDate)
	{
		Calendar defaultCal = new GregorianCalendar();
		Calendar evalCal = StrToDate(strDate);
		return evalCal.before(defaultCal);
	}
	public  boolean isFuture(String strDate)
	{
		Calendar defaultCal = new GregorianCalendar();
		Calendar evalCal = StrToDate(strDate);
		return evalCal.after(defaultCal);
	}
	public String getDayStr( int day )
	{
		String daystr = AppConstants.EMPTY_STRING;
		if(day < 10)
		{
			daystr = "0" + day;
		}
		else
		{
			daystr = AppConstants.EMPTY_STRING + day;
		}
		return daystr.trim();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -