美文网首页
根据身份证号计算年龄(周岁)

根据身份证号计算年龄(周岁)

作者: 墨罚 | 来源:发表于2020-08-12 17:53 被阅读0次

根据身份证号计算年龄(周岁)

     /**
     * 根据身份证号计算年龄(周岁)
     *
     * @param idCard 身份证号
     * @return 年龄
     */
    public Integer calculateAgeByIdCard(String idCard) {

        //截取身份证中出生日期中的年、月、日
        int personYear = Integer.parseInt(idCard.substring(6, 10));
        int personMonth = Integer.parseInt(idCard.substring(10, 12));
        int personDay = Integer.parseInt(idCard.substring(12, 14));

        Calendar cal = Calendar.getInstance();
        // 得到当前时间的年、月、日
        int yearNow = cal.get(Calendar.YEAR);
        int monthNow = cal.get(Calendar.MONTH) + 1;
        int dayNow = cal.get(Calendar.DATE);

        // 用当前年月日减去生日年月日
        int yearMinus = yearNow - personYear;
        int monthMinus = monthNow - personMonth;
        int dayMinus = dayNow - personDay;

        //出生月份小于当前月份时,还没满周岁
        if (monthMinus < 0) {
            return yearMinus - 1;
        }
        //当前月份为出生月份时,并且出生日期小于当前月份时,没满周岁
        if (monthMinus == 0 && dayMinus < 0) {
            return yearMinus - 1;
        }
        return yearMinus;
    }

相关文章

网友评论

      本文标题:根据身份证号计算年龄(周岁)

      本文链接:https://www.haomeiwen.com/subject/kbemdktx.html