数据按半小时统计显示

简介: 数据按半小时统计显示

 

List<Chart> charts = new ArrayList<>();
        SimpleDateFormat format = newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        charts.add(new Chart(format.parse("2020-01-01 01:10:00"), 2d));
        charts.add(new Chart(format.parse("2020-01-01 01:20:00"), 3d));
        charts.add(new Chart(format.parse("2020-01-01 01:40:00"), 4d));
        charts.add(new Chart(format.parse("2020-02-01 01:50:00"), 3d));
        charts.add(new Chart(format.parse("2020-01-01 02:20:00"), 26d));
        Map<Long, Chart> collect = charts.stream().collect(Collectors.toMap(chart ->
        {
            return chart.date.getTime() / (30 * 60 * 1000);
        }, Function.identity(), (k1, k2)
                -> {
            return k1.date.getTime() > k2.date.getTime() ? k1 : k2;
        }));
        Map<String, Double> map = new HashMap<>();
        format = new
                SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat finalFormat = format;
        collect.forEach((k, v) -> { //此处把v.date转换为半小时的标准格式
            String format1 = finalFormat.format(v.date);
            String hours = v.date.getHours() + "";
            int minutes = v.date.getMinutes();
            if
            (minutes >= 0 && minutes < 30) {
                hours = format1 + " " + hours + ":00";
            } else {
                hours = format1 + " " + hours + ":30";
            }
            map.put(hours, v.value);
        });
        Map<String, Double> stringDoubleMap = sortByKey(map);
        static class Chart {
            public Date date;
            public Double value;
            public Chart(Date date, Double value) {
                this.date = date;
                this.value = value;
            }
        }

image.gif

相关文章
|
6月前
|
JavaScript
实时显示当前时间,每秒更新
实时显示当前时间,每秒更新
|
2月前
|
存储 测试技术 定位技术
需要统计出轨迹点出入某个区域的信息,包括:驶入时间、驶出时间
Lindorm Ganos 通过内置的 `ST_TrajectoryProfile` 算子高效统计轨迹的出入信息,利用时空索引技术减少扫描量和内存使用,降低计算成本。它通过空间索引+过滤下推减少扫描量,聚合加速提升效率,并在聚合算子内部完成进出点判断和轨迹信息提取。然而,该算子受限于时间阈值设定,可能在轨迹点不均匀采集时产生误差。测试环境下,查询耗时在20秒内,具体表现取决于过滤后的数据量和空间范围复杂度。
17 0
java 把一个时间段中的节假日和周末过滤掉,获得一个或多个时间段
工作中遇到这种需求了,就写了一个方法,测试了几种情况都没有问题
|
小程序 数据挖掘 BI
如何统计游戏中的数据
文主要内容是教你如何统计小游戏中的数据,强烈建议收藏,因为你迟早会在自己的小游戏中用到。 如果你没有任何的游戏开发经验,欢迎观看我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
166 0
7-19 树种统计 (10 分)
7-19 树种统计 (10 分)
109 0
|
前端开发 Android开发
如何将时间改为显示:几天前,几小时前,或者几分钟前
http://www.oschina.net/question/657074_89320#tags_nav   如何将时间改为显示:几天前,几小时前,或者几分钟前  如这样的  最后发帖:2011-01-05 12:33 要改成这样怎么实现: 最后发表:  2分钟前 最后发表:  28秒前 最后...
1460 0
|
监控 Python
python 办公自动化系列 (1) 从22053条数据中统计断网次数并计算平均断网时间
找到通网后的第一个日志和断网前的最后一个日志,然后提取 date 列的时间做减法,获得本次断网时间,之后用同样的方法统计每次的断网时间,最后计算总的断网次数和断网时间的平均值
258 0
python 办公自动化系列 (1) 从22053条数据中统计断网次数并计算平均断网时间
|
监控 JavaScript BI
报表实时显示时间
报表实时显示时间
1247 0