package com.matrix.system.hiveErp.util; import com.matrix.core.tools.DateUtil; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; public class StatisticsTimeUtil { /** * 通过统计单位获取时间段中,有多小段 * @param beginTime * @param endTime * @param statisticsUnit * @return */ public static List getTimeSpace(String beginTime, String endTime, String statisticsUnit) { List result=new ArrayList<>(); switch (statisticsUnit){ case "时": return getTimeSpaceByHours(beginTime,endTime); case "日": return getTimeSpaceByDay(beginTime,endTime); case "月": return getTimeSpaceByMonth(beginTime,endTime); case "年": return getTimeSpaceByYear(beginTime,endTime); default: return result; } } private static List getTimeSpaceByYear(String beginTime, String endTime){ List tims=new ArrayList(); Date begin= DateUtil.stringToDate(beginTime,DateUtil.YEAR); Date end= DateUtil.stringToDate(endTime,DateUtil.YEAR); tims.add(begin); while(DateUtil.isAffterDate(begin,end)){ begin=DateUtil.getDateAfterYear(begin,1); tims.add(begin); } return tims; } private static List getTimeSpaceByMonth(String beginTime, String endTime){ List tims=new ArrayList(); Date begin= DateUtil.stringToDate(beginTime,DateUtil.MONTH); Date end= DateUtil.stringToDate(endTime,DateUtil.MONTH); tims.add(begin); while(DateUtil.isAffterDate(begin,end)){ begin=DateUtil.getDateAfterMonth(begin,1); tims.add(begin); } return tims; } private static List getTimeSpaceByDay(String beginTime, String endTime){ List tims=new ArrayList(); Date begin= DateUtil.stringToDate(beginTime,DateUtil.DATE_FORMAT_DD); Date end= DateUtil.stringToDate(endTime,DateUtil.DATE_FORMAT_DD); tims.add(begin); while(DateUtil.isAffterDate(begin,end)){ begin=DateUtil.getDateAfter(begin,1); tims.add(begin); } return tims; } private static List getTimeSpaceByHours(String beginTime, String endTime){ List tims=new ArrayList(); Date begin= DateUtil.stringToDate(beginTime,DateUtil.DATE_FORMAT_HH); Date end= DateUtil.stringToDate(endTime,DateUtil.DATE_FORMAT_HH); tims.add(begin); while(DateUtil.isAffterDate(begin,end)){ begin=DateUtil.getDateAfterHours(begin,1); tims.add(begin); } return tims; } public static void main(String[] args) { List tims= getTimeSpaceByYear("2014","2019"); for (Date time: tims) { System.out.println(time.toLocaleString()); } } }