所以基本上我在寻找的是防止日期互相重叠的更好方法。因此,如果我已经创建了一个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