栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Java后端根据身份证号获取年龄

Java 更新时间:发布时间: 百科书网 趣学号

我们假设一个场景,当你与前端进行交互时,前端显示用户信息需要一个age年龄显示,但是数据库表的设计却没有age这个字段只给了一个身份证号,这个时候你该怎么办呢?

接下来为大家解决这个烦恼的问题,首先我们需要自己编写一个工具类,附上代码

public static Integer  getAgeByIdCard(String idCard) throws ParseException {
        char[] chars = idCard.substring(6, idCard.length() - 4).toCharArray();
        StringBuffer birthday=new StringBuffer();
        for (int i=0;i             birthday.append(chars[i]);
            if(i==3||i==5){
                birthday.append("-");
            }
        }
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
 
            Date currentDate = new Date();
            int currentYear = currentDate.getYear()+1900;
            int currentMonth = currentDate.getMonth()+1;
            int currentDay = currentDate.getDay();
 
            Date birthdayDate = simpleDateFormat.parse(String.valueOf(birthday));
            int age=currentYear-(birthdayDate.getYear()+1900);
            int myDay=birthdayDate.getDay();
            int myMonth=birthdayDate.getMonth()+1;
            if(myMonth>currentMonth){
                age-=1;
            }
            else if(myMonth==currentMonth){
                if (myDay < currentDay) {
                    age-=1;
                }
            }
            return  age;

}

测试效果:

String idCard="430223200001020213";
        try {
            Integer ageByIdCard = getAgeByIdCard(idCard);
            System.out.println(ageByIdCard);
        } catch (ParseException e) {
            e.printStackTrace();
}

输出结果:

是不是得到了我们想要的年龄呢,其实代码非常简单,就是将我们的身份证号拆分开,获取年月日所在的字符位置然后装起来再遍历一下就可以获得到一个年-月-日的字符串,然后我们再使用Date时间函数做一个判断就能得到一个具体的时间。

学会了记得点个赞哦。

 

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/601756.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号