importjava.util.Calendar;importjava.util.Date;/*** 功能:计算时间
* 上月开始、上月结束、本月开始、本月结束、上周开始、上周结束、本周开始、本周结束、昨天开始、昨天结束、今天开始、今天结束
*@see*@version2007-06-07
**/publicclassStartAndEndOfDate {publicstaticenumDateTag {LAST_MONTH_START,LAST_MONTH_END,THIS_MONTH_START,THIS_MONTH_END,LAST_WEEK_START,LAST_WEEK_END,
THIS_WEEK_START,THIS_WEEK_END,YESTERDAY_START,YESTERDAY_END,TODAY_START,TODAY_END,NOW};/*** 功能:计算时间
* 上月开始、上月结束、本月开始、本月结束、上周开始、上周结束、本周开始、本周结束、昨天开始、昨天结束、今天开始、今天结束
* 格式:2007-06-01 00:00:00 2007-06-30 23:59:59
* 本月结束、本周结束、今天结束 都指的是当前日期时间
* 一周按照:星期一至星期天来计算
*@paramtag
*@returnString*/publicstaticString getStartAndEndDate(DateTag tag){
String resultString;
Calendar cal=Calendar.getInstance();
Date date=newDate();
java.text.DateFormat formatFull=newjava.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String now=formatFull.format(date);
java.text.DateFormat format=newjava.text.SimpleDateFormat("yyyy-MM-dd");switch(tag){caseLAST_MONTH_START://上月开始cal.add(Calendar.MONTH,-1);
cal.set(Calendar.DATE,1);
String lastMonthStart=format.format(cal.getTime())+"00:00:00";//上月开始(上月1号)cal.clear();
resultString=lastMonthStart;break;caseLAST_MONTH_END://上月结束cal=Calendar.getInstance();
cal.add(Calendar.MONTH,-1);
cal.set(Calendar.DATE,cal.getActualMaximum(Calendar.DAY_OF_MONTH));
String lastMonthEnd=format.format(cal.getTime())+"23:59:59";//上月结束(上月最后一天)cal.clear();
resultString=lastMonthEnd;break;caseTHIS_MONTH_START://本月开始cal=Calendar.getInstance();
cal.add(Calendar.MONDAY,0);
cal.set(Calendar.DAY_OF_MONTH,1);
String thisMonthStart=format.format(cal.getTime())+"00:00:00";//本月开始(本月1号)cal.clear();
resultString=thisMonthStart;break;caseTHIS_MONTH_END://本月结束String thisMonthEnd=now;//本月结束(即:当前时间)resultString=thisMonthEnd;break;caseLAST_WEEK_START://上周开始cal=Calendar.getInstance();
cal.add(Calendar.WEEK_OF_YEAR,-1);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
String lastWeekStart=format.format(cal.getTime())+"00:00:00";//上周开始(即:上周一)cal.clear();
resultString=lastWeekStart;break;caseLAST_WEEK_END://上周结束cal=Calendar.getInstance();
cal.add(Calendar.WEEK_OF_YEAR,0);
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
String lastWeekEnd=format.format(cal.getTime())+"23:59:59";//上周结束(即:上周日)cal.clear();
resultString=lastWeekEnd;break;caseTHIS_WEEK_START://本周开始cal=Calendar.getInstance();
cal.add(Calendar.WEEK_OF_YEAR,0);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
String thisWeekStart=format.format(cal.getTime())+"00:00:00";//本周开始(即:本周一)cal.clear();
resultString=thisWeekStart;break;caseTHIS_WEEK_END://本周结束String thisWeekEnd=now;//本周结束(即:当前时间)resultString=thisWeekEnd;break;caseYESTERDAY_START://昨天开始cal=Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH,-1);
format=newjava.text.SimpleDateFormat("yyyy-MM-dd");
String yesterdayStart=format.format(cal.getTime());
yesterdayStart=yesterdayStart+"00:00:00";//昨天开始cal.clear();
resultString=yesterdayStart;break;caseYESTERDAY_END://昨天结束cal=Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH,-1);
format=newjava.text.SimpleDateFormat("yyyy-MM-dd");
String yesterdayEnd=format.format(cal.getTime());
yesterdayEnd=yesterdayEnd+"23:59:59";//昨天结束cal.clear();
resultString=yesterdayEnd;break;caseTODAY_START://今天开始String todayStart=format.format(date)+"00:00:00";//今天开始resultString=todayStart;break;caseTODAY_END://今天结束String todayEnd=now;//今天结束(即;当前时间)resultString=todayEnd;break;default://没有匹配的,返回当前时间resultString=now;
}returnresultString;
}
}