Java8中Period.between方法獲取隔年的月數


參考文章:https://www.cnblogs.com/JoeyWong/p/9544456.html

 

參考文章的文中提到,使用Period.between()方法來獲取,相差天數、相差月數的時候,發現只能計算同月的天數、同年的月數,不能計算隔月的天數以及隔年的月數,但是沒有提到解決辦法。

 

計算隔年的月數解決的辦法如下:

使用between.getYears()*12+between.getMonths(),getYears獲取到相差的年份,乘以12個月,再加上相差的月份getMonths,即可得到隔年的月數。比如2020年5月和2021年6月相差的就是12+1,共相差13個月。

//定義一個計算工作時長的方法
    public static int calc(Date hireDate){
        //獲取並創建一個本地的時間對象date1
        LocalDate date1=LocalDate.now();
        //創建一個Calender日歷對象c,默認值是獲取到當前JVM運行的系統的時間
        Calendar c=Calendar.getInstance();
        //將日歷對象c的時間設置為員工的入職時間hireDate
        c.setTime(hireDate);
        //LocalDate.of(年,月,日)可以通過年月日的方法,格式化一個Date日期
        //獲取日歷c里的年月日,輸入到date2對象中
        LocalDate date2=LocalDate.of(c.get(Calendar.YEAR),
                c.get(Calendar.MONTH)+1,c.get(Calendar.DAY_OF_MONTH));

        //創建一個Period類型的between對象,通過Period.between方法計算date2和date1的時間差
        Period between=Period.between(date2,date1);

        //因為between方法在計算相差天數、相差月數的時候,發現只能計算同月的天數、同年的月數,不能計算隔月的天數以及隔年的月數
        //所以需要用相隔的年數*12,在加上相隔的月數,就可以得到隔年的月數了
        //因此返回值是between.getYears()*12
        return between.getYears()*12+between.getMonths();
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM