业务需求:新加入的时间段不能与已存在的时间段重叠
/**
* 验证插入的时间段是否存在重叠
* @param startHour 插入的开始时间 小时
* @param startMinute 插入的开始时间 分钟
* @param endHour 插入的结束时间 小时
* @param endMinute 插入的结束时间 分钟
* @param periods 已存在的时间段集合
* @return
*/
private boolean checkOverlap(int startHour, int startMinute, int endHour, int endMinute,
List<Period> periods) {
boolean flag = true;
for (Period period : periods) {
int hour1 = period.getStartHour();
int minute1 = period.getStartMinute();
int hour2 = period.getEndHour();
int minute2 = period.getEndMinute();
if (startHour * 60 + startMinute < endHour * 60 + endMinute) {
if ((hour1 * 60 + minute1 >= endHour * 60 + endMinute) ||
startHour * 60 + startMinute >= hour2 * 60 + minute2) {
flag = true;
} else {
flag = false;
break;
}
} else {
if ((hour1 * 60 + minute1 <= endHour * 60 + endMinute) &&
startHour * 60 + startMinute >= hour2 * 60 + minute2) {
flag = true;
} else {
flag = false;
break;
}
}
}
return flag;
}