java 根据身份证号码判断出生日期、性别、年龄的示例

网友投稿 677 2022-11-16


java 根据身份证号码判断出生日期、性别、年龄的示例

1.情景展示

如何根据身份证号,计算出出生日期、性别、年龄?

2.解决方案

从网上找的别人的,因为并没有实际用到,所以并未对其优化!

/**

 * 通过身份证号码获取出生日期、性别、年龄

 * @param certificateNo

 * @return 返回的出生日期格式:1990-01-01 性别格式:F-女,M-男

 */

public static Map getBirAgeSex(String certificateNo) {

    String birthday = "";

    String age = "";

    String sexCode = "";

 

    int year = Calendar.getInstance().get(Calendar.YEAR);

    char[] number = certificateNo.toCharArray();

    boolean flag = true;

    if (number.length == 15) {

        for (int x = 0; x < number.length; x++) {

            if (!flag)

                return new HashMap();

            flag = Character.isDigit(number[x]);

        }

    } else if (number.length == 18) {

        for (int x = 0; x < number.length - 1; x++) {

            if (!flag)

                return new HashMap();

            flag = Character.isDigit(number[x]);

   &nLfloecbsp;    }

    }

    if (flag && certificateNo.length() == 15) {

        birthday = "19" + certificateNo.substring(6, 8) + "-" + certificateNo.substring(8, 10) + "-"

                + certificateNo.substring(10, 12);

        sexCode = Integer.parseInt(certificateNo.substring(certificateNo.length() - 3, certificateNo.length()))

                % 2 == 0 ? "F" : "M";

        age = (year - Integer.parseInt("19" + certificateNo.substring(6, 8))) + "";

    } else if (flag && certificateNo.length() == 18) {

        birthday = certificateNo.substring(6, 10) + "-" + certificateNo.substring(10, 12) + "-"

                + certificateNo.substring(12, 14);

        sexCode = Integer.parseInt(certificateNo.substring(certificateNo.length() - 4, certificateNo.length() - 1))

                % 2 == 0 ? "F" : "M";

        age = (year - Integer.parseInt(certificateNo.substring(6, 10))) + "";

    }

    Map map = new HashMap();

    map.put("birthday", birthday);

    map.put("age", age);

    map.put("sexCode", sexCode);

    return map;

}

根据身份证号提取出生日期

// 出生日期

String birthday = "";

// 身份证号不为空

if (sfzh.length() == 15) {

    birthday = "19" + sfzh.substring(6, 8) + "-" + sfzh.substring(8, 10) + "-" + sfzh.substring(10, 12);

} else if (sfzh.length() == 18) {

    birthday = sfzh.substring(6, 10) + "-" + sfzh.substring(10, 12) + "-" + sfzh.substring(12, 14);

}

写在最后

哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

以上就是java 根据身份证号码判断出生日期、性别、年龄的示例的详细内容,更多关于Java 身份证号码的资料请关注我们其它相关文章!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot返回modelandview页面的实例
下一篇:idea2020.3测试评价及感受
相关文章

 发表评论

暂时没有评论,来抢沙发吧~