校验时间比较方法的入参合法性

This commit is contained in:
fengbaoheng 2022-09-04 00:20:25 +08:00
parent 5d148eb2e3
commit b906cad408
2 changed files with 16 additions and 2 deletions

View File

@ -462,8 +462,8 @@ public class LocalDateTimeUtil {
* 则本方法会判断 time (start, end] 是否成立
*
* @param time 被比较的时间
* @param start 开始时间, 应小于等于结束时间
* @param end 结束时间应大于等于开始时间
* @param start 开始时间, 应小于等于结束时间
* @param end 结束时间应大于等于开始时间
* @param isIncludeStart 时间范围是否包含开始时间
* @param isIncludeEnd 时间范围是否包含结束时间
* @return true-在范围内false-不在范围内
@ -472,6 +472,14 @@ public class LocalDateTimeUtil {
*/
public static boolean isBetween(LocalDateTime time, LocalDateTime start, LocalDateTime end,
boolean isIncludeStart, boolean isIncludeEnd) {
if (time == null || start == null || end == null) {
throw new IllegalArgumentException("时间参数不可为null");
}
if(end.isBefore(start)){
throw new IllegalArgumentException("结束时间应大于等于开始时间");
}
// 先判断是否满足 time (start, end)
boolean isBetween = time.isAfter(start) && time.isBefore(end);

View File

@ -164,6 +164,12 @@ public class LocalDateTimeUtilTest {
Assert.assertFalse(LocalDateTimeUtil.isBetween(start, start, end, false, false));
Assert.assertTrue(LocalDateTimeUtil.isBetween(end, start, end, false, true));
Assert.assertFalse(LocalDateTimeUtil.isBetween(end, start, end, false, false));
// 异常入参
Assert.assertThrows(IllegalArgumentException.class, ()->LocalDateTimeUtil.isBetween(null, start, end, false, false));
Assert.assertThrows(IllegalArgumentException.class, ()->LocalDateTimeUtil.isBetween(start, null, end, false, false));
Assert.assertThrows(IllegalArgumentException.class, ()->LocalDateTimeUtil.isBetween(start, start, null, false, false));
Assert.assertThrows(IllegalArgumentException.class, ()->LocalDateTimeUtil.isBetween(start, end, start, false, false));
}
@Test