java计算两个日期的月数差

时间:2025-03-10 10:01:12
/** * 获取两个日期相差的月数 * @param d1 较大的日期 * @param d2 较小的日期 * @return 如果d1>d2返回 月数差 否则返回0 */ public static int getMonthDiff(Date d1, Date d2) { Calendar c1 = (); Calendar c2 = (); (d1); (d2); if(() < ()) return 0; int year1 = (); int year2 = (); int month1 = (); int month2 = (); int day1 = (Calendar.DAY_OF_MONTH); int day2 = (Calendar.DAY_OF_MONTH); // 获取年的差值 假设 d1 = 2015-8-16 d2 = 2011-9-30 int yearInterval = year1 - year2; // 如果 d1的 月-日 小于 d2的 月-日 那么 yearInterval-- 这样就得到了相差的年数 if(month1 < month2 || month1 == month2 && day1 < day2) yearInterval --; // 获取月数差值 int monthInterval = (month1 + 12) - month2 ; if(day1 < day2) monthInterval --; monthInterval %= 12; return yearInterval * 12 + monthInterval; }