Joda LocalDate比较是否等于或之前和之后

时间:2019-05-29 09:49:36

标签: java jodatime

我想比较joda LocalDate对象,并检查/比较日期在两个日期之间。

示例:

LocalDate date = new LocalDate(2019, 2, 2);
LocalDate end = new LocalDate();
LocalDate start = end.minusYears(1);

现在,我要检查date是否在startend之间。 另外,我希望它的工作方式像gtelte ...之前或等于之后,还是之后或等于。

我只能找到isBeforeisAfterisEqual ...,但是找不到isBeforeOrEqualisAfterOrEqual

是否有可以与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)的以下评论之后,我重写了方法isBeforeOrEqualisAfterOrEqual,它要短得多。非常感谢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);
}

谢谢!

0 个答案:

没有答案