| package com.matrix.system.hiveErp.analysUtil; | 
|   | 
| import com.matrix.core.tools.DateUtil; | 
| import org.apache.commons.collections.MapUtils; | 
|   | 
| import java.util.ArrayList; | 
| import java.util.Date; | 
| import java.util.List; | 
| import java.util.Map; | 
|   | 
| /** | 
|  * 统计分析时间工具 | 
|  * @author  jyy | 
|  */ | 
| public class StatisticsTimeUtil { | 
|   | 
|   | 
|   | 
|   | 
|     /** | 
|      * 获取map中的值为数组 | 
|      * @param yAxisMap | 
|      * @return | 
|      */ | 
|     public static  String[] getSeries(Map<String, Integer> yAxisMap) { | 
|         if (MapUtils.isNotEmpty(yAxisMap)) { | 
|             String[] seroes = new String[yAxisMap.size()-1]; | 
|             for (int index=0; index<yAxisMap.size()-1 ; index++) { | 
|                 if(index<seroes.length){ | 
|                     System.out.println(yAxisMap.get("t"+index)+""); | 
|                      seroes[index]=yAxisMap.get("t"+index)+""; | 
|                 } | 
|             } | 
|             return seroes; | 
|         } else { | 
|             return new String[0]; | 
|         } | 
|     } | 
|   | 
|   | 
|   | 
|     /** | 
|      * | 
|      * @param xAxis | 
|      * @param statisticsParam | 
|      * @return | 
|      */ | 
|     public static String[] getFormartDateList(List<Date> xAxis, StatisticsParamVo statisticsParam) { | 
|         String[] dates=new String[xAxis.size()]; | 
|         String dataFmt=""; | 
|         switch (statisticsParam.getStatisticsUnit()){ | 
|             case "时": | 
|                 dataFmt= DateUtil.DATE_FORMAT_HH; | 
|                 break; | 
|             case "日": | 
|                 dataFmt=DateUtil.DATE_FORMAT_DD; | 
|                 break; | 
|             case "月": | 
|                 dataFmt=DateUtil.MONTH; | 
|                 break; | 
|             case "年": | 
|                 dataFmt=DateUtil.YEAR; | 
|                 break; | 
|   | 
|         } | 
|         for(int i=0 ; i<dates.length; i++ ){ | 
|             dates[i]= DateUtil.dateToString(xAxis.get(i),dataFmt); | 
|         } | 
|         return dates; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 构建查询参数,带时间范围 | 
|      * @param xAxis | 
|      * @return | 
|      */ | 
|     public static List<StatisticsTimeDaoParam> buidParam(List<Date> xAxis) { | 
|         List<StatisticsTimeDaoParam> daoParams = new ArrayList<>(); | 
|         for(int i=0 ;i<xAxis.size(); i++){ | 
|             StatisticsTimeDaoParam param=  new StatisticsTimeDaoParam(); | 
|             param.setBeginTime(xAxis.get(i)); | 
|             if(i+1<xAxis.size()){ | 
|                 param.setEndTime(xAxis.get(i+1)); | 
|             } | 
|             daoParams.add(param); | 
|         } | 
|         return daoParams; | 
|     } | 
|   | 
|   | 
|   | 
|     /** | 
|      * 通过统计单位获取时间段中,有多小段 | 
|      * @param beginTime | 
|      * @param endTime | 
|      * @param statisticsUnit | 
|      * @return | 
|      */ | 
|     public static List<Date> getTimeSpace(String beginTime, String endTime, String statisticsUnit) { | 
|   | 
|   | 
|         List<Date> 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<Date> getTimeSpaceByYear(String beginTime, String endTime){ | 
|         List<Date> 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); | 
|         } | 
|   | 
|         begin=DateUtil.getDateAfterYear(begin,1); | 
|         tims.add(begin); | 
|         return tims; | 
|     } | 
|   | 
|   | 
|     private static List<Date> getTimeSpaceByMonth(String beginTime, String endTime){ | 
|         List<Date> 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); | 
|         } | 
|         begin=DateUtil.getDateAfterMonth(begin,1); | 
|         tims.add(begin); | 
|         return tims; | 
|     } | 
|   | 
|   | 
|     private static List<Date> getTimeSpaceByDay(String beginTime, String endTime){ | 
|         List<Date> 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); | 
|         } | 
|         begin=DateUtil.getDateAfter(begin,1); | 
|         tims.add(begin); | 
|         return tims; | 
|     } | 
|   | 
|   | 
|   | 
|   | 
|     private static List<Date> getTimeSpaceByHours(String beginTime, String endTime){ | 
|          List<Date> 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); | 
|          } | 
|         begin=DateUtil.getDateAfterHours(begin,1); | 
|         tims.add(begin); | 
|          return tims; | 
|     } | 
|   | 
|     public static void main(String[] args) { | 
|         List<Date> tims= getTimeSpaceByYear("2014","2019"); | 
|         for (Date time:  tims) { | 
|             System.out.println(time.toLocaleString()); | 
|         } | 
|     } | 
| } |