Skip to content

Commit 843d1d1

Browse files
committed
修复DateUtil.rangeContains未重置问题(issue#IB8OFS@gitee)
1 parent af5cddf commit 843d1d1

File tree

3 files changed

+30
-4
lines changed

3 files changed

+30
-4
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
### 🐣新特性
88
### 🐞Bug修复
99
* 【crypto 】 修复JWTSignerUtil.createSigner中algorithmId未转换问题(issue#3806@Github)
10+
* 【core 】 修复DateUtil.rangeContains未重置问题(issue#IB8OFS@gitee)
1011

1112
-------------------------------------------------------------------------------------------------------------
1213
# 5.8.34(2024-11-25)

hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1975,8 +1975,8 @@ public static DateRange range(Date start, Date end, final DateField unit) {
19751975
* @since 5.7.21
19761976
*/
19771977
public static List<DateTime> rangeContains(DateRange start, DateRange end) {
1978-
List<DateTime> startDateTimes = CollUtil.newArrayList((Iterable<DateTime>) start);
1979-
List<DateTime> endDateTimes = CollUtil.newArrayList((Iterable<DateTime>) end);
1978+
List<DateTime> startDateTimes = CollUtil.newArrayList((Iterable<DateTime>) start.reset());
1979+
List<DateTime> endDateTimes = CollUtil.newArrayList((Iterable<DateTime>) end.reset());
19801980
return startDateTimes.stream().filter(endDateTimes::contains).collect(Collectors.toList());
19811981
}
19821982

@@ -1990,8 +1990,8 @@ public static List<DateTime> rangeContains(DateRange start, DateRange end) {
19901990
* @since 5.7.21
19911991
*/
19921992
public static List<DateTime> rangeNotContains(DateRange start, DateRange end) {
1993-
List<DateTime> startDateTimes = CollUtil.newArrayList((Iterable<DateTime>) start);
1994-
List<DateTime> endDateTimes = CollUtil.newArrayList((Iterable<DateTime>) end);
1993+
List<DateTime> startDateTimes = CollUtil.newArrayList((Iterable<DateTime>) start.reset());
1994+
List<DateTime> endDateTimes = CollUtil.newArrayList((Iterable<DateTime>) end.reset());
19951995
return endDateTimes.stream().filter(item -> !startDateTimes.contains(item)).collect(Collectors.toList());
19961996
}
19971997

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package cn.hutool.core.date;
2+
3+
import cn.hutool.core.lang.Console;
4+
import org.junit.jupiter.api.Assertions;
5+
import org.junit.jupiter.api.Test;
6+
7+
import java.util.List;
8+
9+
public class IssueIB8OFSTest {
10+
@Test
11+
void rangeTest() {
12+
DateRange startRange = DateUtil.range(
13+
DateUtil.parse("2017-01-01"),
14+
DateUtil.parse("2017-01-31"), DateField.DAY_OF_YEAR);
15+
DateRange endRange = DateUtil.range(
16+
DateUtil.parse("2017-01-31"),
17+
DateUtil.parse("2017-02-02"), DateField.DAY_OF_YEAR);
18+
19+
List<DateTime> dateTimes = DateUtil.rangeContains(startRange, endRange);
20+
Assertions.assertEquals(1, dateTimes.size());
21+
22+
List<DateTime> dateNotTimes = DateUtil.rangeNotContains(startRange, endRange);
23+
Assertions.assertEquals(2, dateNotTimes.size());
24+
}
25+
}

0 commit comments

Comments
 (0)