判断2个时间段,是否有重复
在java代码中判断是否存在重复
private static Boolean judgingTimeRepetition(Date startTime1, Date endTime1,
Date startTime2, Date endTime2) {
long start1 = startTime1.getTime();
long end1 = endTime1.getTime();
long start2 = startTime2.getTime();
long end2 = endTime2.getTime();
if (start1 <= end2 && end1 >= start2) {
return false;
}
return true;
}
public static void main(String[] args) throws ParseException {
Date startTime1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2022-07-28 01:00:00");
Date endTime1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2022-07-28 02:30:00");
Date startTime2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2022-07-28 02:30:01");
Date endTime2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2022-07-28 03:00:00");
System.out.println(judgingTimeRepetition(startTime1, endTime1, startTime2, endTime2));
}
在sql中判断是否存在重复
startdate1 <=enddate2 and enddate1>=startdate2
若你⽆法理解上⾯这种⽅法,那我还有下⾯的⽅法提供给你:
(startdate1 BETWEEN startdate2 AND enddate2)
or (enddate1 BETWEEN startdate2 AND enddate2)
or (startdate2 BETWEEN startdate1 AND enddate1)
or (enddate2 BETWEEN startdate1 AND enddate1)