getDateRangeList (LocalDateTimeUtils)

ruoyi-office · analytics, date-ranges, time-bucketing, interval-alignment

Splits a time span into aligned ranges by interval (hour/day/week/month/quarter/year) and clamps the final range to endTime. Useful for bucketing time-based data.

    public static List<LocalDateTime[]> getDateRangeList(LocalDateTime startTime,
                                                         LocalDateTime endTime,
                                                         Integer interval) {
        // 1.1 找到枚举
        DateIntervalEnum intervalEnum = DateIntervalEnum.valueOf(interval);
        Assert.notNull(intervalEnum, "interval({}} 找不到对应的枚举", interval);
        // 1.2 将时间对齐
        startTime = LocalDateTimeUtil.beginOfDay(startTime);
        endTime = LocalDateTimeUtil.endOfDay(endTime);

        // 2. 循环,生成时间范围
        List<LocalDateTime[]> timeRanges = new ArrayList<>();
        switch (intervalEnum) {
            case HOUR:
                while (startTime.isBefore(endTime)) {
                    timeRanges.add(new LocalDateTime[]{star

... (truncated -- full source via MCP)

See the full source, get the GitHub permalink, and search 40K more like it.

Get a free API key