📄 tsdateutil.java.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 + -