eg:
20180901 -- 20180930
->>>>
20180901-20180915 && 20180916-20180930
/*** 获取两日期相差天数** @param beginDateStr 时间起点* @param endDateStr 时间终点* @param TimeType 时间类型 yyyy-MM-dd || yyyyMMdd || ....* @return long /天数*/public static long getDaySub(String beginDateStr, String endDateStr, String TimeType) {long day = 0;SimpleDateFormat format;try {format = new SimpleDateFormat(TimeType);} catch (Exception e) {System.out.println("getDaySub——>TimeType:"+TimeType);format = new SimpleDateFormat("yyyy-MM-dd");}Date beginDate;Date endDate;try {beginDate = format.parse(beginDateStr);endDate = format.parse(endDateStr);day = (endDate.getTime() - beginDate.getTime()) / (24 * 60 * 60 * 1000);} catch (Exception e) {System.out.println("获取两时间差值出现异常 begin:" + beginDateStr + " end:" + endDateStr);}if (day < 0) {day = day * -1;}return day;}/*** 将一段时间分割为两个连续的时间段** @param dp 时间集合 <开始时间,结束时间>* @param TimeType 时间类型 yyyy-MM-dd || yyyyMMdd || ....* @return 1.两个相连的时间集合 2.null*/public static List<Pair<String, String>> cutDatePair(Pair<String, String> dp, String TimeType) {List<Pair<String, String>> lst = new ArrayList<>();long ts = getDaySub(dp.left(), dp.right(), TimeType);if (ts < 2) {return null;}int day = (int) ts / 2;SimpleDateFormat format;try {format = new SimpleDateFormat(TimeType);} catch (Exception e) {format = new SimpleDateFormat("yyyy-MM-dd");}Date beginDate;try {beginDate = format.parse(dp.left());Calendar beginDataEnd = Calendar.getInstance();beginDataEnd.setTime(beginDate);beginDataEnd.add(Calendar.DAY_OF_YEAR, day);//"开始"的结束时间 Calendar endDataBegin = Calendar.getInstance();endDataBegin.setTime(beginDate);endDataBegin.add(Calendar.DAY_OF_YEAR, day + 1);//"结束"的开始时间 lst.add(new Pair<>(dp.left(), format.format(beginDataEnd.getTime())));lst.add(new Pair<>(format.format(endDataBegin.getTime()), dp.right()));System.out.println("拆分时间 " + dp.left() + "-" + dp.right() + " -->> " + dp.left() + "-" + format.format(beginDataEnd.getTime()) +" and " + format.format(endDataBegin.getTime()) + "-" + dp.right());} catch (Exception e) {}if(lst.isEmpty() || lst.size()!=2){return null;}return lst;}