我想比较joda LocalDate对象,并检查/比较日期在两个日期之间。
示例:
LocalDate date = new LocalDate(2019, 2, 2);
LocalDate end = new LocalDate();
LocalDate start = end.minusYears(1);
现在,我要检查date
是否在start
和end
之间。
另外,我希望它的工作方式像gte
和lte
...之前或等于之后,还是之后或等于。
我只能找到isBefore
,isAfter
,isEqual
...,但是找不到isBeforeOrEqual
和isAfterOrEqual
。
是否有可以与joda LocalDate一起使用的实用程序?有什么有效的方法可以解决这个问题吗?
我正在考虑先检查isBefore
然后检查isEqual
,先检查isAfter
然后再检查isEqual
...,但是我认为检查时间太长或效率低。
private boolean isBeforeOrEqual(LocalDate date, LocalDate compareToDate) {
if (date == null || compareToDate == null) {
return false;
}
return compareToDate.isBefore(date) || compareToDate.isEqual(date);
}
private boolean isAfterOrEqual(LocalDate date, LocalDate compareToDate) {
if (date == null || compareToDate == null) {
return false;
}
return compareToDate.isAfter(date) || compareToDate.isEqual(date);
}
在亚历克斯(Alex)的以下评论之后,我重写了方法isBeforeOrEqual
和isAfterOrEqual
,它要短得多。非常感谢Alex。
private boolean isBeforeOrEqual(LocalDate date, LocalDate compareToDate) {
if (date == null || compareToDate == null) {
return false;
}
return !compareToDate.isAfter(date);
}
private boolean isAfterOrEqual(LocalDate date, LocalDate compareToDate) {
if (date == null || compareToDate == null) {
return false;
}
return !compareToDate.isBefore(date);
}
谢谢!