From 843d1d11dc68c8da982b74410a47ca33253b4f20 Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 4 Dec 2024 00:29:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DDateUtil.rangeContains?= =?UTF-8?q?=E6=9C=AA=E9=87=8D=E7=BD=AE=E9=97=AE=E9=A2=98=EF=BC=88issue#IB8?= =?UTF-8?q?OFS@gitee=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + .../java/cn/hutool/core/date/DateUtil.java | 8 +++--- .../cn/hutool/core/date/IssueIB8OFSTest.java | 25 +++++++++++++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 hutool-core/src/test/java/cn/hutool/core/date/IssueIB8OFSTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index a85d574d2..4f8f829de 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### 🐣新特性 ### 🐞Bug修复 * 【crypto 】 修复JWTSignerUtil.createSigner中algorithmId未转换问题(issue#3806@Github) +* 【core 】 修复DateUtil.rangeContains未重置问题(issue#IB8OFS@gitee) ------------------------------------------------------------------------------------------------------------- # 5.8.34(2024-11-25) diff --git a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java index 53b44ad17..ab92c8519 100755 --- a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java @@ -1975,8 +1975,8 @@ public class DateUtil extends CalendarUtil { * @since 5.7.21 */ public static List rangeContains(DateRange start, DateRange end) { - List startDateTimes = CollUtil.newArrayList((Iterable) start); - List endDateTimes = CollUtil.newArrayList((Iterable) end); + List startDateTimes = CollUtil.newArrayList((Iterable) start.reset()); + List endDateTimes = CollUtil.newArrayList((Iterable) end.reset()); return startDateTimes.stream().filter(endDateTimes::contains).collect(Collectors.toList()); } @@ -1990,8 +1990,8 @@ public class DateUtil extends CalendarUtil { * @since 5.7.21 */ public static List rangeNotContains(DateRange start, DateRange end) { - List startDateTimes = CollUtil.newArrayList((Iterable) start); - List endDateTimes = CollUtil.newArrayList((Iterable) end); + List startDateTimes = CollUtil.newArrayList((Iterable) start.reset()); + List endDateTimes = CollUtil.newArrayList((Iterable) end.reset()); return endDateTimes.stream().filter(item -> !startDateTimes.contains(item)).collect(Collectors.toList()); } diff --git a/hutool-core/src/test/java/cn/hutool/core/date/IssueIB8OFSTest.java b/hutool-core/src/test/java/cn/hutool/core/date/IssueIB8OFSTest.java new file mode 100644 index 000000000..1d6921523 --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/date/IssueIB8OFSTest.java @@ -0,0 +1,25 @@ +package cn.hutool.core.date; + +import cn.hutool.core.lang.Console; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.List; + +public class IssueIB8OFSTest { + @Test + void rangeTest() { + DateRange startRange = DateUtil.range( + DateUtil.parse("2017-01-01"), + DateUtil.parse("2017-01-31"), DateField.DAY_OF_YEAR); + DateRange endRange = DateUtil.range( + DateUtil.parse("2017-01-31"), + DateUtil.parse("2017-02-02"), DateField.DAY_OF_YEAR); + + List dateTimes = DateUtil.rangeContains(startRange, endRange); + Assertions.assertEquals(1, dateTimes.size()); + + List dateNotTimes = DateUtil.rangeNotContains(startRange, endRange); + Assertions.assertEquals(2, dateNotTimes.size()); + } +}