日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 对一组时间进行处理 提出连续的时间段

發(fā)布時間:2024/3/13 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 对一组时间进行处理 提出连续的时间段 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

近期的開發(fā)工作中,遇到一個需求。一組時間段內(nèi),取出連續(xù)的時間段分組。

如2016-01-01,2016-01-02,2016-01-03,2016-01-04,2016-01-06,2016-01-07
結(jié)果為[2016-01-01,2016-01-03],[2016-01-04,2016-01-04],[2016-01-06,2016-01-07]。

廢話不多說,上代碼。注意需要先對list進行小到大排序。

List<Map<String,Object>> object = new ArrayList<Map<String,Object>>(); //測試數(shù)據(jù)Map<String,Object> map = new HashMap<String,Object>(); map.put("scheduleDate", "2017-12-11");object.add(map);map = new HashMap<String,Object>();map.put("scheduleDate", "2017-12-12");object.add(map);map = new HashMap<String,Object>();map.put("scheduleDate", "2017-12-13");object.add(map);map = new HashMap<String,Object>();map.put("scheduleDate", "2017-12-14"); //1object.add(map);map = new HashMap<String,Object>();map.put("scheduleDate", "2017-12-16"); //2object.add(map);map = new HashMap<String,Object>();map.put("scheduleDate", "2017-12-18"); object.add(map);map = new HashMap<String,Object>();map.put("scheduleDate", "2017-12-19");object.add(map);map = new HashMap<String,Object>();map.put("scheduleDate", "2017-12-20");//3object.add(map);map = new HashMap<String,Object>();map.put("scheduleDate", "2017-12-22");object.add(map);map = new HashMap<String,Object>();map.put("scheduleDate", "2017-12-23");object.add(map);map = new HashMap<String,Object>();map.put("scheduleDate", "2017-12-24"); //4object.add(map);map = new HashMap<String,Object>();map.put("scheduleDate", "2017-12-28"); //5object.add(map);Date startDate = dateFormat.parse(object.get(0).get("scheduleDate").toString());Date endDate = null;boolean is = false; List<Map<String,Object>> tempList= new ArrayList<Map<String,Object>>();for (int i = 0; i < object.size(); i++) {if(is){startDate = dateFormat.parse(object.get(i).get("scheduleDate").toString());is = false;}Date parse = dateFormat.parse(object.get(i).get("scheduleDate").toString());Date parseNext = null;if((i+1)==object.size()){parseNext = dateFormat.parse(object.get(i).get("scheduleDate").toString());}else{parseNext = dateFormat.parse(object.get(i+1).get("scheduleDate").toString());}calendar.setTime(parse);calendar.add(Calendar.DATE, 1);Date time2 = calendar.getTime();//如果parse+1天不等于parse1if (parseNext .compareTo(time2)!=0 || (i+1)==object.size()) { if ((i+1)==object.size()) { //如果循環(huán)到最后一個endDate=parseNext;}else{endDate=parse;}Map<String,Object> map1 = new HashMap<String,Object>();map1.put("begin", dateFormat.format(startDate));map1.put("end", dateFormat.format(endDate));tempList.add(map1);startDate = parseNext ;is = true;}}

總結(jié)

以上是生活随笔為你收集整理的Java 对一组时间进行处理 提出连续的时间段的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。