Java 根據兩個傳入的指定年月日計算出相差的月份,並最終四捨五入計算出年份
筆者前段時間做一個專案需要這個需求:經過了解我們需要使用到這個包 jodd-time
其中maven依賴如下:
<dependency>
<groupId>org.jodd</groupId>
<artifactId>jodd</artifactId>
<version>3.3.8</version>
</dependency>
首先編寫一個工具類:
/**
* 獲取兩個時間之間的月份
* @param timeStart
* @param timeEnd
* @return
*/
public static int getMonthBetween(String timeStart,String timeEnd){
//這個格式可以自定義
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd");
DateTime startTime = formatter.parseDateTime(timeStart);
DateTime endTime = formatter.parseDateTime(timeEnd);
int months = Months.monthsBetween(startTime, endTime).getMonths();
return months;
}
/**
* 根據所有的月份計算出相差的年份
* @param months
* @return
*/
private int handleMonth(int months) {
BigDecimal month = BigDecimal.valueOf(months);
BigDecimal total = BigDecimal.valueOf(12);
int result = month.divide(total, 0, RoundingMode.HALF_UP).intValue();
return result;
}
這樣就會計算出兩個年月日之間的相差年份