就比如: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);
}