本文實(shí)例講述了Java簡單計(jì)算兩個(gè)日期月數(shù)差的方法。分享給大家供大家參考,具體如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
/** * 獲取兩個(gè)日期相差的月數(shù) * @param d1 較大的日期 * @param d2 較小的日期 * @return 如果d1>d2返回 月數(shù)差 否則返回0 */ public static int getMonthDiff(Date d1, Date d2) { Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); c1.setTime(d1); c2.setTime(d2); if (c1.getTimeInMillis() < c2.getTimeInMillis()) return 0 ; int year1 = c1.get(Calendar.YEAR); int year2 = c2.get(Calendar.YEAR); int month1 = c1.get(Calendar.MONTH); int month2 = c2.get(Calendar.MONTH); int day1 = c1.get(Calendar.DAY_OF_MONTH); int day2 = c2.get(Calendar.DAY_OF_MONTH); // 獲取年的差值 假設(shè) d1 = 2015-8-16 d2 = 2011-9-30 int yearInterval = year1 - year2; // 如果 d1的 月-日 小于 d2的 月-日 那么 yearInterval-- 這樣就得到了相差的年數(shù) if (month1 < month2 || month1 == month2 && day1 < day2) yearInterval --; // 獲取月數(shù)差值 int monthInterval = (month1 + 12 ) - month2 ; if (day1 < day2) monthInterval --; monthInterval %= 12 ; return yearInterval * 12 + monthInterval; } |
希望本文所述對大家java程序設(shè)計(jì)有所幫助。