新手求教,JAVA怎么计算出两个日期之间相差多少个月??在线等。。。

就比如:2017-04-21 和 2018-04-21 我要的结果是 12

If you can't use JodaTime, you can do the following:

    public int getMonths(Date startDate, Date endDate) {
        Calendar startCalendar = new GregorianCalendar();
        startCalendar.setTime(startDate);
        Calendar endCalendar = new GregorianCalendar();
        endCalendar.setTime(endDate);

        int diffYear = endCalendar.get(Calendar.YEAR) - startCalendar.get(Calendar.YEAR);
        int diffMonth = diffYear * 12 + endCalendar.get(Calendar.MONTH) - startCalendar.get(Calendar.MONTH);
        return diffMonth;
    }

给的日期是什么格式的?2007/12/22还是其他

其实只要获取日期的总月份再相减就行了,日期总月份=年份X12+月份。最后取正值

/**
*
* 两个日期相差的月份
* @param start 启始日期
* @param end 结束日期
* @return 相差的月份
* @see [类、类#方法、类#成员]
*/
public static int getCountMonths(Calendar start, Calendar end)
{
int startMonths = start.get(Calendar.YEAR) * 12 + start.get(Calendar.MONTH);
int endMonths = end.get(Calendar.YEAR) * 12 + end.get(Calendar.MONTH);
return (startMonths > endMonths ? startMonths - endMonths : endMonths - startMonths);
}