mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
!552 参考增加对时间段重合的判断方法,拓展Date以及DateTime类型
Merge pull request !552 from 阿超/v5-dev
This commit is contained in:
commit
c1f9ef1ff5
@ -2183,6 +2183,22 @@ public class DateUtil extends CalendarUtil {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查两个时间段是否有时间重叠<br>
|
||||
* 重叠指两个时间段是否有交集
|
||||
*
|
||||
* @param realStartTime 第一个时间段的开始时间
|
||||
* @param realEndTime 第一个时间段的结束时间
|
||||
* @param startTime 第二个时间段的开始时间
|
||||
* @param endTime 第二个时间段的结束时间
|
||||
* @return true 表示时间有重合
|
||||
* @since 5.7.20
|
||||
*/
|
||||
public static boolean isOverlap(Date realStartTime, Date realEndTime,
|
||||
Date startTime, Date endTime) {
|
||||
return startTime.after(realEndTime) || endTime.before(realStartTime);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------ Private method start
|
||||
|
||||
/**
|
||||
|
@ -1027,4 +1027,24 @@ public class DateUtilTest {
|
||||
final DateTime dateTime = DateUtil.parse("12:23:34");
|
||||
Console.log(dateTime);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isOverlapTest() {
|
||||
DateTime oneStartTime = DateTime.of("2022-01-01 10:10:10", DatePattern.NORM_DATETIME_PATTERN);
|
||||
DateTime oneEndTime = DateTime.of("2022-01-01 11:10:10", DatePattern.NORM_DATETIME_PATTERN);
|
||||
|
||||
DateTime oneStartTime2 = DateTime.of("2022-01-01 11:20:10", DatePattern.NORM_DATETIME_PATTERN);
|
||||
DateTime oneEndTime2 = DateTime.of("2022-01-01 11:30:10", DatePattern.NORM_DATETIME_PATTERN);
|
||||
|
||||
DateTime oneStartTime3 = DateTime.of("2022-01-01 11:40:10", DatePattern.NORM_DATETIME_PATTERN);
|
||||
DateTime oneEndTime3 = DateTime.of("2022-01-01 11:50:10", DatePattern.NORM_DATETIME_PATTERN);
|
||||
|
||||
//真实请假数据
|
||||
DateTime realStartTime = DateTime.of("2022-01-01 11:49:10", DatePattern.NORM_DATETIME_PATTERN);
|
||||
DateTime realEndTime = DateTime.of("2022-01-01 12:00:10", DatePattern.NORM_DATETIME_PATTERN);
|
||||
|
||||
Assert.assertTrue(DateUtil.isOverlap(oneStartTime, oneEndTime, realStartTime, realEndTime));
|
||||
Assert.assertTrue(DateUtil.isOverlap(oneStartTime2, oneEndTime2, realStartTime, realEndTime));
|
||||
Assert.assertFalse(DateUtil.isOverlap(oneStartTime3, oneEndTime3, realStartTime, realEndTime));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user