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

2020-08-12  本文已影响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;
    }
上一篇 下一篇

猜你喜欢

热点阅读