所以基本上我在尋找的是防止日期互相重疊的更好方法。因此,如果我已經創建了一個2016年10月9日至2016年9月15日期間的活動,那麼我創建的下一個活動不能在這兩個日期之間。如何有效檢查日期範圍是否不重疊?
這裏的代碼是我到目前爲止,但我認爲這是混亂的,我甚至不確定它是否正常工作。
(fromDate.isAfter(element.getFromDate()) && fromDate.isBefore(element.getToDate()) || toDate.isAfter(element.getFromDate()) && toDate.isBefore(element.getToDate()) || fromDate.isBefore(element.getFromDate()) && toDate.isAfter(element.getToDate()) || fromDate.isEqual(element.getFromDate()) && toDate.isEqual(element.getToDate()) || fromDate.isBefore(element.getFromDate()) && toDate.isEqual(element.getToDate()) || fromDate.isEqual(element.getFromDate()) && toDate.isAfter(element.getToDate()))
我使用java.time.LocalDate
番石榴有一個不錯的RangeSet類,可以在這裏使用 – 2016-01-13 19:08:55