java 两个时间段比较
需求是:判断当前时间段是否和其他时间段发生冲突
代码如下:
/**
* 判断被比较时间 是否在某个时间段内, 如果在该时间段内返回true
* @param beComparedTimes : 被比较时间【可传多个】
* @param beginTimeScop : 时间段-开始时间
* @param endTimeScop : 时间段-结束时间
* @return true:在该时间段内(包括等), false:不在该时间段内
*/
public static boolean isWithin(Date beginTimeScop, Date endTimeScop , Date... beComparedTimes) {
boolean isInScope = false; //所有时间是存于时间段内。
for(Date beComparedTime : beComparedTimes){
boolean itemIsInScop = false;
Calendar date = Calendar.getInstance();
Calendar begin = Calendar.getInstance();
Calendar end = Calendar.getInstance();
date.setTime(beComparedTime);
begin.setTime(beginTimeScop);
end.setTime(endTimeScop);
if (date.after(begin) && date.before(end)) {
itemIsInScop = true;
} else if (beComparedTime.compareTo(beginTimeScop) == 0 || beComparedTime.compareTo(endTimeScop) == 0) {
itemIsInScop = true;
}
if(itemIsInScop){
isInScope = true;
break;
}
}
return isInScope;
}
使用如下:
//判断被比较时间 是否在某个时间段内, 如果在该时间段内返回true
flag = DateUtils.isWithin(useStartDateScop,useEndDateScop,useStartDate,useEndDate);