java公用类_日期公用处理类

packagecom.sipgl.eam.utils;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Calendar;importjava.util.Date;importjava.util.GregorianCalendar;importjava.util.LinkedHashMap;/*** 日期公用处理类

*

*@authorSongJun

*@version1.3*/publicclassDateUtil {/*** 解析一个日期之间的所有月份

*

*@parambeginDateStr

*@paramendDateStr

*@return*/publicstaticArrayList getMonthList(String beginDateStr, String endDateStr) {//指定要解析的时间格式SimpleDateFormat f=newSimpleDateFormat("yyyy-MM");//返回的月份列表String sRet="";//定义一些变量Date beginDate=null;

Date endDate=null;

GregorianCalendar beginGC=null;

GregorianCalendar endGC=null;

ArrayList list=newArrayList();try{//将字符串parse成日期beginDate=f.parse(beginDateStr);

endDate=f.parse(endDateStr);//设置日历beginGC=newGregorianCalendar();

beginGC.setTime(beginDate);

endGC=newGregorianCalendar();

endGC.setTime(endDate);//直到两个时间相同while(beginGC.getTime().compareTo(endGC.getTime())<=0) {

sRet=beginGC.get(Calendar.YEAR)+"-"+(beginGC.get(Calendar.MONTH)+1);

list.add(sRet);//以月为单位,增加时间beginGC.add(Calendar.MONTH,1);

}returnlist;

}catch(Exception e) {

e.printStackTrace();returnnull;

}

}/*** 解析一个日期段之间的所有日期

*

*@parambeginDateStr

*            开始日期

*@paramendDateStr

*            结束日期

*@return*/publicstaticArrayList getDayList(String beginDateStr, String endDateStr) {//指定要解析的时间格式SimpleDateFormat f=newSimpleDateFormat("yyyy-MM-dd");//定义一些变量Date beginDate=null;

Date endDate=null;

Calendar beginGC=null;

Calendar endGC=null;

ArrayList list=newArrayList();try{//将字符串parse成日期beginDate=f.parse(beginDateStr);

endDate=f.parse(endDateStr);//设置日历beginGC=Calendar.getInstance();

beginGC.setTime(beginDate);

endGC=Calendar.getInstance();

endGC.setTime(endDate);

SimpleDateFormat sdf=newSimpleDateFormat("yyyy-MM-dd");//直到两个时间相同while(beginGC.getTime().compareTo(endGC.getTime())<=0) {

list.add(sdf.format(beginGC.getTime()));//以日为单位,增加时间beginGC.add(Calendar.DAY_OF_MONTH,1);

}returnlist;

}catch(Exception e) {

e.printStackTrace();returnnull;

}

}publicstaticArrayList getYearList() {

ArrayList list=newArrayList();

Calendar c=null;

c=Calendar.getInstance();

c.setTime(newDate());intcurrYear=Calendar.getInstance().get(Calendar.YEAR);intstartYear=currYear-5;intendYear=currYear+10;for(inti=startYear; i

list.add(newInteger(i));

}returnlist;

}publicstaticintgetCurrYear() {returnCalendar.getInstance().get(Calendar.YEAR);

}/*** 得到某一年周的总数

*

*@paramyear

*@return*/publicstaticLinkedHashMap getWeekList(intyear) {

LinkedHashMap map=newLinkedHashMap();

Calendar c=newGregorianCalendar();

c.set(year, Calendar.DECEMBER,31,23,59,59);intcount=getWeekOfYear(c.getTime());

SimpleDateFormat sdf=newSimpleDateFormat("yyyy-MM-dd");

String dayOfWeekStart="";

String dayOfWeekEnd="";for(inti=1; i<=count; i++) {

dayOfWeekStart=sdf.format(getFirstDayOfWeek(year, i));

dayOfWeekEnd=sdf.format(getLastDayOfWeek(year, i));

map.put(newInteger(i),"第"+i+"周(从"+dayOfWeekStart+"至"+dayOfWeekEnd+")");

}returnmap;

}/*** 得到一年的总周数

*@paramyear

*@return*/publicstaticintgetWeekCountInYear(intyear){

Calendar c=newGregorianCalendar();

c.set(year, Calendar.DECEMBER,31,23,59,59);intcount=getWeekOfYear(c.getTime());returncount;

}/*** 取得当前日期是多少周

*

*@paramdate

*@return*/publicstaticintgetWeekOfYear(Date date) {

Calendar c=newGregorianCalendar();

c.setFirstDayOfWeek(Calendar.MONDAY);

c.setMinimalDaysInFirstWeek(7);

c.setTime(date);returnc.get(Calendar.WEEK_OF_YEAR);

}/*** 得到某年某周的第一天

*

*@paramyear

*@paramweek

*@return*/publicstaticDate getFirstDayOfWeek(intyear,intweek) {

Calendar c=newGregorianCalendar();

c.set(Calendar.YEAR, year);

c.set(Calendar.MONTH, Calendar.JANUARY);

c.set(Calendar.DATE,1);

Calendar cal=(GregorianCalendar) c.clone();

cal.add(Calendar.DATE, week*7);returngetFirstDayOfWeek(cal.getTime());

}/*** 得到某年某周的最后一天

*

*@paramyear

*@paramweek

*@return*/publicstaticDate getLastDayOfWeek(intyear,intweek) {

Calendar c=newGregorianCalendar();

c.set(Calendar.YEAR, year);

c.set(Calendar.MONTH, Calendar.JANUARY);

c.set(Calendar.DATE,1);

Calendar cal=(GregorianCalendar) c.clone();

cal.add(Calendar.DATE, week*7);returngetLastDayOfWeek(cal.getTime());

}/*** 得到某年某月的第一天

*@paramyear

*@parammonth

*@return*/publicstaticDate getFirestDayOfMonth(intyear,intmonth){

month=month-1;

Calendar   c=Calendar.getInstance();

c.set(Calendar.YEAR, year);

c.set(Calendar.MONTH, month);intday=c.getActualMinimum(c.DAY_OF_MONTH);

c.set(Calendar.DAY_OF_MONTH, day);returnc.getTime();

}/*** 提到某年某月的最后一天

*@paramyear

*@parammonth

*@return*/publicstaticDate getLastDayOfMonth(intyear,intmonth){

month=month-1;

Calendar   c=Calendar.getInstance();

c.set(Calendar.YEAR, year);

c.set(Calendar.MONTH, month);intday=c.getActualMaximum(c.DAY_OF_MONTH);

c.set(Calendar.DAY_OF_MONTH, day);returnc.getTime();

}/*** 取得当前日期所在周的第一天

*

*@paramdate

*@return*/publicstaticDate getFirstDayOfWeek(Date date) {

Calendar c=newGregorianCalendar();

c.setFirstDayOfWeek(Calendar.MONDAY);

c.setTime(date);

c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek());//Mondayreturnc.getTime();

}/*** 取得当前日期所在周的最后一天

*

*@paramdate

*@return*/publicstaticDate getLastDayOfWeek(Date date) {

Calendar c=newGregorianCalendar();

c.setFirstDayOfWeek(Calendar.MONDAY);

c.setTime(date);

c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()+6);//Sundayreturnc.getTime();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值