mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
commit
538200bdc3
@ -2196,7 +2196,8 @@ public class DateUtil extends CalendarUtil {
|
|||||||
*/
|
*/
|
||||||
public static boolean isOverlap(Date realStartTime, Date realEndTime,
|
public static boolean isOverlap(Date realStartTime, Date realEndTime,
|
||||||
Date startTime, Date endTime) {
|
Date startTime, Date endTime) {
|
||||||
return startTime.after(realEndTime) || endTime.before(realStartTime);
|
|
||||||
|
return startTime.before(realEndTime) && endTime.after(realStartTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------ Private method start
|
// ------------------------------------------------------------------------ Private method start
|
||||||
|
@ -564,7 +564,7 @@ public class LocalDateTimeUtil {
|
|||||||
*/
|
*/
|
||||||
public static boolean isOverlap(ChronoLocalDateTime<?> realStartTime, ChronoLocalDateTime<?> realEndTime,
|
public static boolean isOverlap(ChronoLocalDateTime<?> realStartTime, ChronoLocalDateTime<?> realEndTime,
|
||||||
ChronoLocalDateTime<?> startTime, ChronoLocalDateTime<?> endTime) {
|
ChronoLocalDateTime<?> startTime, ChronoLocalDateTime<?> endTime) {
|
||||||
return startTime.isAfter(realEndTime) || endTime.isBefore(realStartTime);
|
return startTime.isBefore(realEndTime) && endTime.isAfter(realStartTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1043,8 +1043,18 @@ public class DateUtilTest {
|
|||||||
DateTime realStartTime = DateUtil.parse("2022-01-01 11:49:10");
|
DateTime realStartTime = DateUtil.parse("2022-01-01 11:49:10");
|
||||||
DateTime realEndTime = DateUtil.parse("2022-01-01 12:00:10");
|
DateTime realEndTime = DateUtil.parse("2022-01-01 12:00:10");
|
||||||
|
|
||||||
Assert.assertTrue(DateUtil.isOverlap(oneStartTime, oneEndTime, realStartTime, realEndTime));
|
DateTime realStartTime1 = DateUtil.parse("2022-03-01 08:00:00");
|
||||||
Assert.assertTrue(DateUtil.isOverlap(oneStartTime2, oneEndTime2, realStartTime, realEndTime));
|
DateTime realEndTime1 = DateUtil.parse("2022-03-01 10:00:00");
|
||||||
Assert.assertFalse(DateUtil.isOverlap(oneStartTime3, oneEndTime3, realStartTime, realEndTime));
|
|
||||||
|
DateTime startTime = DateUtil.parse("2022-03-23 05:00:00");
|
||||||
|
DateTime endTime = DateUtil.parse("2022-03-23 13:00:00");
|
||||||
|
|
||||||
|
Assert.assertFalse(DateUtil.isOverlap(oneStartTime, oneEndTime, realStartTime, realEndTime));
|
||||||
|
Assert.assertFalse(DateUtil.isOverlap(oneStartTime2, oneEndTime2, realStartTime, realEndTime));
|
||||||
|
Assert.assertTrue(DateUtil.isOverlap(oneStartTime3, oneEndTime3, realStartTime, realEndTime));
|
||||||
|
|
||||||
|
Assert.assertFalse(DateUtil.isOverlap(realStartTime1,realEndTime1,startTime,endTime));
|
||||||
|
Assert.assertFalse(DateUtil.isOverlap(startTime,endTime,realStartTime1,realEndTime1));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ import java.time.LocalDateTime;
|
|||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.time.temporal.TemporalAccessor;
|
import java.time.temporal.TemporalAccessor;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
public class LocalDateTimeUtilTest {
|
public class LocalDateTimeUtilTest {
|
||||||
|
|
||||||
@ -196,9 +197,18 @@ public class LocalDateTimeUtilTest {
|
|||||||
LocalDateTime realStartTime = LocalDateTime.of(2022, 1, 1, 11, 49, 10);
|
LocalDateTime realStartTime = LocalDateTime.of(2022, 1, 1, 11, 49, 10);
|
||||||
LocalDateTime realEndTime = LocalDateTime.of(2022, 1, 1, 12, 0, 10);
|
LocalDateTime realEndTime = LocalDateTime.of(2022, 1, 1, 12, 0, 10);
|
||||||
|
|
||||||
Assert.assertTrue(LocalDateTimeUtil.isOverlap(oneStartTime,oneEndTime,realStartTime,realEndTime));
|
LocalDateTime realStartTime1 = DateUtil.parseLocalDateTime("2022-03-01 08:00:00");
|
||||||
Assert.assertTrue(LocalDateTimeUtil.isOverlap(oneStartTime2,oneEndTime2,realStartTime,realEndTime));
|
LocalDateTime realEndTime1 = DateUtil.parseLocalDateTime("2022-03-01 10:00:00");
|
||||||
Assert.assertFalse(LocalDateTimeUtil.isOverlap(oneStartTime3,oneEndTime3,realStartTime,realEndTime));
|
|
||||||
|
LocalDateTime startTime = DateUtil.parseLocalDateTime("2022-03-23 05:00:00");
|
||||||
|
LocalDateTime endTime = DateUtil.parseLocalDateTime("2022-03-23 13:00:00");
|
||||||
|
|
||||||
|
Assert.assertFalse(LocalDateTimeUtil.isOverlap(oneStartTime,oneEndTime,realStartTime,realEndTime));
|
||||||
|
Assert.assertFalse(LocalDateTimeUtil.isOverlap(oneStartTime2,oneEndTime2,realStartTime,realEndTime));
|
||||||
|
Assert.assertTrue(LocalDateTimeUtil.isOverlap(oneStartTime3,oneEndTime3,realStartTime,realEndTime));
|
||||||
|
|
||||||
|
Assert.assertFalse(LocalDateTimeUtil.isOverlap(realStartTime1,realEndTime1,startTime,endTime));
|
||||||
|
Assert.assertFalse(LocalDateTimeUtil.isOverlap(startTime,endTime,realStartTime1,realEndTime1));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Loading…
x
Reference in New Issue
Block a user