欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据统计补全没有数据的日期

程序员文章站 2022-07-12 12:51:54
...

统据统计补全日期

缺失日期数据的补全

做数据统计时有时某天没有丝毫数据,从数据库查出来就断了几天,这些数据直接做成折线图就达不到想要的效果,这时就得对数据库查出的数据进行一些处理。

代码

		
		//想要查询的开始截止时间
		String startTime = "2020-08-01 00:00:00";
        String endTime = "2020-08-05 23:59:59";
        
		//此集合为数据库中查出的数据
        List<DataDTO> dataDTOS = new ArrayList<>();
        
        //使用Hutool工具类里面的时间工具
        DateTime dateStartTime = DateUtil.parse(startTime);
        DateTime dateEndTime = DateUtil.parse(endTime);
        //获取不间断日期
        List<String> dateList = new ArrayList<>();
        long between = DateUtil.between(dateStartTime, dateEndTime, DateUnit.DAY);
        int num = (int) between;
        for (int i=0;i<=num;i++){
            DateTime dateTime = DateUtil.offsetDay(dateStartTime, i);
            String time = dateTime.toString("yyyy-MM-dd");
            dateList.add(time);
        }
         //不间断日期补全数据
        List<DataDTO> dataList=new ArrayList<>();
        for (String time:dateList){
            List<DataDTO> collect = dataDTOS.parallelStream()
                    .filter(e -> e.getDate().equals(time)).collect(Collectors.toList());
            if (ParamUtil.isBlank(collect)){
                dataList.add(new DataDTO(time,0));
            }else {
                dataList.add(collect.get(0));
            }
        }
        
相关标签: java