From 84140c52b07a630c13dc9d7eb632a1bca326b077 Mon Sep 17 00:00:00 2001 From: dhb52 Date: Sat, 6 Apr 2024 15:14:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20LocalDateTimeUtils.getDateRangeList?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=AD=A3=E5=BA=A6=E5=8C=BA=E9=97=B4=E6=9C=89?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/common/util/date/LocalDateTimeUtils.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/LocalDateTimeUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/LocalDateTimeUtils.java index cf978d81a..2648c88de 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/LocalDateTimeUtils.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/LocalDateTimeUtils.java @@ -249,8 +249,11 @@ public class LocalDateTimeUtils { break; case DateIntervalEnum.QUARTER: while (startTime.isBefore(endTime)) { - LocalDateTime quarterEnd = startTime.withMonth(getQuarterOfYear(startTime) * 3 + 1) - .withDayOfMonth(1).minusNanos(1); + int quarterOfYear = getQuarterOfYear(startTime); + LocalDateTime quarterEnd = + quarterOfYear == 4 + ? startTime.with(TemporalAdjusters.lastDayOfYear()).plusDays(1).minusNanos(1) + : startTime.withMonth(quarterOfYear * 3 + 1).withDayOfMonth(1).minusNanos(1); timeRanges.add(new LocalDateTime[]{startTime, quarterEnd}); startTime = quarterEnd.plusNanos(1); }