1. 程式人生 > >Java 根據兩個傳入的指定年月日計算出相差的月份,並最終四捨五入計算出年份

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;
    }

  這樣就會計算出兩個年月日之間的相差年份