我个人使用Guava
的Range类。
它支持开放范围。也可以指定包含或排除的范围。除其他众多可能性外,这些可能性还可以轻松地表示“在日期之前”或“在日期之后”。
开放式时间间隔示例。
Range<LocalDate> before2010 = Range.atMost(new LocalDate("2009-12-31"));Range<LocalDate> alsoBefore2010 = Range.lessThan(new LocalDate("2010-01-01"));它还提供了简单的测试谓词,例如contains和containsAll,以及交集操作。所有这些都经过测试和维护。



