我正在使用此代码来计算输入的过去日期和当前日期之间的月份数。它使用JodaTime

LocalDate date1 = new LocalDate(installmentStartDate2);
        LocalDate date2 = new LocalDate(new java.util.Date());
        PeriodType monthDay = PeriodType.yearMonthDayTime();
        Period difference = new Period(date1, date2, monthDay);
        int months = difference.getMonths();
        return months + 1;

现在,当我输入2013年1月1日时,我会得到10作为答案。但是问题是即使我输入2012年1月1日也得到10。

因此,这意味着在计算时不考虑年份。

输入2012年1月1日时,我该怎么做才能得到正确的答案,例如22。

JodaTime可以做到吗?如果是 ?如何 ?
如果不 ?还有其他方法吗?

最佳答案

您的代码几乎是正确的。

你可以改变 :

PeriodType monthDay = PeriodType.yearMonthDayTime();

到 :
PeriodType monthDay = PeriodType.months();

它也将起作用。

10-08 12:50