Java 8 DateTime检查句点是否包含特定日期

Yve*_*eth 9 java datetime java-8 java-time

我想检查一下日期是否包含二月二十九日.

private static final MonthDay LEAP = MonthDay.of(Month.FEBRUARY, 29);
Run Code Online (Sandbox Code Playgroud)

我试过了:

if (LEAP.isAfter(beginDate) && LEAP.isBefore(maturity)) {

    }
Run Code Online (Sandbox Code Playgroud)

beginDatematurity是从类型LocalDate 这样的方法中.isAfter,并.isBefore不能使用.

beginDate是15.01.2012
maturity是二○一三年一月二十〇日

在此期间,2月29日存在

我终于找到了解决方案:

for (int i = beginDate.getYear(); i <= maturity.getYear(); i++) {
    final Year year = Year.of(i);
    if (year.isLeap()) {
        if (beginDate.compareTo(LEAP.atYear(i)) <= 0 || maturity.compareTo(LEAP.atYear(i)) >= 0) {
            minMaturity.plusDays(1);
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*n B 1

您是否尝试过分别将LocalDate和转换MonthDayDateTime使用toDateTimeAtStartOfDaytoDateTime

您需要测试当年份不是闰年时这是否会导致 true。它可能。