Java 对一组时间进行处理 提出连续的时间段
近期的开发工作中,遇到一个需求。一组时间段内,取出连续的时间段分组。
如2016-01-01,2016-01-02,2016-01-03,2016-01-04,2016-01-06,2016-01-07
结果为[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>>(); //测试数据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()) { //如果循环到最后一个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;}}
Java 对一组时间进行处理 提出连续的时间段相关推荐
- java处理日期时间 相加减
参考:http://alexfc.iteye.com/blog/363185 JAVA处理日期时间常用方法: 1.java.util.Calendar Calendar 类是一个抽象类,它为特定瞬间 ...
- 详解 Java 日期与时间
文章目录 一.时区 二.夏令时 三.旧 API 3.1. Date 3.2. SimpleDateFormat 3.3. Calendar 四.新 API 4.1. LocalDateTime 4.2 ...
- java获取日期/时间
获取年月日.小时分钟秒 public class DateTimeTest {public static void main(String[] args) {Calendar cal = Calend ...
- Java 日期和时间
Java 日期和时间 日期和时间在我们的实际开发中非常常用,例如用户的注册.数据的增删改.对敏感信息的操作等等都需要记录下日期和时间.通过本小节的学习,你将了解到什么是日期.什么是时间.什么是时区,J ...
- Java仿微信时间显示
Java仿微信时间显示 需求 代码实现 1.dto类设计 2.controller层 3.service层 4.时间格式化(service层) 4.分组函数(service层) 总结 需求 微信聊天消 ...
- Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几
Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...
- Java基础 ----常用时间类
Java基础 ----常用时间类 java.util.Date java.util.Calendar java.text.SimpleDateFormat new Date().getTime() & ...
- 如何使用Java获取当前日期/时间
用Java获取当前日期/时间的最佳方法是什么? #1楼 采用: String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss") ...
- Java基础入门(一):Java里面的时间
这是一篇非常基础的Java技术文章,简单的说就是一个知识点,是自己在写业务代码时的一点总结,大神请绕行. 在 java 里面 表示 时间 ,一种是 java.util.Date 类,一种是 long ...
最新文章
- bat maven 一键打包 3.0
- 查看历史操作记录_燕麦课堂丨操作日志管理,为企业数据安全保驾护航
- 20145324 20145325 《信息安全系统设计基础》实验三
- python四则运算器tkinter_Python基于Tkinter的二输入规则器(乞丐版)
- MVC工作中的笔记~2(架构师是一步一步练成的)
- centos oracle 修改监听服务名_Oracle-Oracle DB、监听和oem开机启动
- Win10:ssh报错:RSA host key for 192.168.3.10 has changed and you have requested strict checking.
- linux设备驱动归纳总结(三):1.字符型设备之设备申请【转】
- canny算法(3)——非极大值抑制
- python给csv文件添加表头
- 世界著名半导体公司及其官网
- JS基础——选项卡列表显示隐藏缩略图(函数传参)
- 安卓动画壁纸实战:制作一个星空动态壁纸(带随机流星动画)
- android之java程序性能优化(不断补充)
- Vue实现顶部导航栏设计
- 电脑热点怎么开,教你win7开启热点教程
- 维棠下载flv出错 kmplayer背黑锅
- MFC 修改文件或者文件夹的属性。
- python程序是由一系列代码组成的_python3.x学习小记
- 黄金瞳-域名历史成交价格查询器
热门文章
- 快鲸公寓管理系统:职业房东、公寓运营商的共同选择
- [armv9]-PAC:Pointer authentication和BTI:Branch target instructions介绍
- [折腾日记]win10 ,ubuntu双系统安装避坑指南
- 分布式监控系统WGCLOUD故障自愈能力说明
- (附源码)计算机毕业设计SSM加油站管理信息系统
- 格式化xml文件排版String
- 高德地图鼠标划线显示距离并生成坐标点数据
- 华为8月9日发布鸿蒙,8月9日华为正式发布鸿蒙系统
- BK7256,上海博通Wi-Fi6SOC芯片,高度集成-支持100w像素,详细资料
- Elasticsearch模块——CRUD