当前位置: 首页 > 后端技术 > Java

按月、季度、半年、年拆分时间间隔

时间:2023-04-01 22:22:09 Java

repairsplitToHalfOfYears按半年拆分//按周拆分时间段publicstaticfinalListsplitToWeeks(Datestart,Dateend){List结果=新的ArrayList<>();结果.add(Range.create(start));日期开始=newDate(start.getTime()+7L*24*3600*1000);DateweekEnd=cn.hutool.core.date.DateUtil.endOfWeek(end);while(from.compareTo(weekEnd)<=0){Datedt=cn.hutool.core.date.DateUtil.beginOfWeek(from);CollectionUtil.getLast(结果)。结束(新日期(dt.getTime()-24L*3600*1000));结果.add(Range.create(dt));from.setTime(from.getTime()+7L*24*3600*1000);}CollectionUtil.getLast(result).end(end);返回结果;}//将时间段按月分割publicstaticfinalListsplitToMonths(Datestart,Dateend){Listresult=newArrayList<>();结果.add(Range.create(start));日历cal=Calendar.getInstance();cal.setTime(开始);cal.add(Calendar.MONTH,1);日期monthEnd=cn.hutool.core.date.DateUtil.endOfMonth(end);while(cal.getTimeInMillis()<=monthEnd.getTime()){日期dt=cn.hutool.core.date.DateUtil.beginOfMonth(cal.getTime());CollectionUtil.getLast(result).end(newDate(dt.getTime()-24L*3600*1000));结果.add(Range.create(dt));cal.add(Calendar.MONTH,1);}CollectionUtil.getLast(result).end(end);返回结果;}//将时间段按季节分割publicstaticfinalListsplitToQuarts(Datestart,Dateend){Listresult=newArrayList<>();结果.add(Range.create(start));日历cal=Calendar.getInstance();cal.setTime(开始);cal.add(日历.MONTH,3);日期quartEnd=cn.hutool.core.date.DateUtil.endOfQuarter(end);while(cal.getTimeInMillis()<=quartEnd.getTime()){日期dt=cn.hutool.core.date.DateUtil.beginOfQuarter(cal.getTime());CollectionUtil.getLast(result).end(newDate(dt.getTime()-24L*3600*1000));结果.add(Range.create(dt));cal.add(日历.MONTH,3);}CollectionUtil.getLast(result).end(end);返回结果;}//将时间段按照半年分割publicstaticfinalListsplitToHalfOfYears(Datestart,Dateend){Listresult=newArrayList<>();结果.add(Range.create(start));日历cal=Calendar.getInstance();cal.setTime(开始);cal.add(日历.MONTH,6);intmon=cal.get(Calendar.MONTH);inttmpMon=DateUtil.month(end);日历tmp=Calendar.getInstance();如果(tmpMon<6){tmp.setTimeInMillis(cal.getTimeInMillis());tmp.set(Calendar.MONTH,5);}else{tmp.setTimeInMillis(cal.getTimeInMillis());tmp.set(Calendar.MONTH,11);}tmp.set(Calendar.YEAR,DateUtil.year(end));日历halfYearEnd=cn.hutool.core.date.DateUtil.endOfMonth(tmp);longtimeInMillis=halfYearEnd.getTimeInMillis();while(cal.getTimeInMillis()<=timeInMillis){mon=cal.get(Calendar.MONTH);日历cal1=Calendar.getInstance();如果(mon<6){cal1.setTimeInMillis(cal.getTimeInMillis());cal1.set(Calendar.MONTH,0);}else{cal1.setTimeInMillis(cal.getTimeInMillis());cal1.set(Calendar.MONTH,6);}日期dt=cn.hutool.core.date.DateUtil.beginOfMonth(cal1.getTime());CollectionUtil.getLast(结果).end(新日期(dt.getTime()-24L*0*1000));结果.add(Range.create(dt));cal.add(日历.MONTH,6);}CollectionUtil.getLast(result).end(end);返回结果;}//将时间段按照片年分割publicstaticfinalListsplitToYears(Datestart,Dateend){Listresult=newArrayList<>();结果.add(Range.create(start));日历cal=Calendar.getInstance();cal.setTime(开始);cal.add(Calendar.YEAR,1);日期yearEnd=cn.hutool.core.date.DateUtil.endOfYear(end);while(cal.getTimeInMillis()<=yearEnd.getTime()){日期dt=cn.hutool.core.date.DateUtil.beginOfYear(cal.getTime());CollectionUtil.getLast(result).end(newDate(dt.getTime()-24L*3600*1000));结果.add(Range.create(dt));cal.add(Calendar.YEAR,1);}CollectionUtil.getLast(result).end(end);返回结果;}//日期区间publicstaticclassRange{Datestart;日期结束;私人范围(日期开始){this.start=start;}publicstaticRangecreate(Datestart){returnnewRange(start);}publicRangeend(Dateend){this.end=end;归还这个;}publicDategetStart(){返回开始;}publicDategetEnd(){返回结束;}@OverridepublicStringtoString(){return"["+cn.hutool.core.date.DateUtil.format(start,"yyyy-MM-dd")+"-"+cn.hutool.core.date.DateUtil.format(end,"yyyy-MM-dd")+"]";}}