zoukankan      html  css  js  c++  java
  • 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();
        }
  • 相关阅读:
    Atitit.atiRI  与 远程调用的理论and 设计
    Atitit.提升 升级类库框架后的api代码兼容性设计指南
    Atitit.研发管理软件公司的软资产列表指南
    Atitit.软件开发的三层结构isv金字塔模型
    Atitit.加密算法ati Aes的框架设计
    Atittit.研发公司的组织架构与部门架构总结
    IIS HTTP Error 500.24
    Visual Studio 快捷键
    软件学习遐想
    navigator属性
  • 原文地址:https://www.cnblogs.com/zengyu1234/p/14934432.html
Copyright © 2011-2022 走看看