Java簡單計算兩個日期月數差的方法
本文實例講述了Java簡單計算兩個日期月數差的方法。分享給大家供大家參考,具體如下:
/**
* 獲取兩個日期相差的月數
* @param d1 較大的日期
* @param d2 較小的日期
* @return 如果d1>d2返回 月數差 否則返回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);
// 獲取年的差值 假設 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;
}
PS:這里再為大家推薦幾款關于日期與天數計算的在線工具供大家使用:
在線日期/天數計算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在線萬年歷日歷:
http://tools.jb51.net/bianmin/wannianli
在線陰歷/陽歷轉換工具:
http://tools.jb51.net/bianmin/yinli2yangli
更多關于java相關內容感興趣的讀者可查看本站專題:《java日期與時間操作技巧匯總》、《Java數據結構與算法教程》、《Java操作DOM節(jié)點技巧總結》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
相關文章
springboot攔截器Interceptor的使用,你都了解嗎
springmvc 中的攔截器可以對請求進行判別,在請求到達控制器之前,把非法的請求給攔截掉下面來說一說, 它在springboot中的使用,感興趣的朋友一起看看吧2021-07-07
spring cloud gateway集成hystrix全局斷路器操作
這篇文章主要介紹了spring cloud gateway集成hystrix全局斷路器操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07

