java根据身份证号计算持有者年龄--超容易

这篇具有很好参考价值的文章主要介绍了java根据身份证号计算持有者年龄--超容易。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

主要思路很简单:

1.通过当前年份和用户出生年份相减计算出age :用户当年还没过生的话,age要减一。

2.在身份证截取根据“月日”拼接成开头可以为0的四位数int值。根据当前月日值和用户出生月日对比大小,一步判断age是否要减一。避免了月份判断月份相同等和日期的繁琐判断。

例如用户:2000-12/15 生日  (int)1215>1128,用户 age=22-1=21 

       用户:2000-05/23 生日  (int)0523<1128 , 用户 age=22

以下就是代码实现,身份证截取2000(年)、1215(月日),当前时间转成 yyyy-MMdd 也截取相同的值计算。再加上字符长度合法性校验,以及18位和15位身份证的按条件赋值。

public static int countAge(String idCard) {
        if (idCard.length() != 18 && idCard.length() != 15) {
            throw new IllegalArgumentException("身份证号长度错误");
        }
        String year;
        String monthDay;
        if (idCard.length() == 18) {
            year = idCard.substring(6,10);
            monthDay = idCard.substring(10,14);
        } else {
            year = "19" + idCard.substring(6, 8);
            monthDay = idCard.substring(8, 12);
        }
        //获取当前时间字符串如:2022-1128
        String nowTimeStr = new SimpleDateFormat("yyyy-MMdd").format(new Date());
        String yearNow = nowTimeStr.substring(0, 4);// 当前年份
        String monthDayNow = nowTimeStr.substring(5, 9);// 当前月日
        int age = Integer.parseInt(yearNow) - Integer.parseInt(year);
        //age减一的情况 :用户月日大于当前月日(开头可以为0的4位数int)
        if (Integer.parseInt(monthDay) > Integer.parseInt(monthDayNow)) {
            age = age - 1;
        }
        return age;
    }

参考博客:Java 身份证号 计算年龄、性别_陈賝的博客-CSDN博客_java根据身份证号计算年龄文章来源地址https://www.toymoban.com/news/detail-532779.html

到了这里,关于java根据身份证号计算持有者年龄--超容易的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js实现输入身份证号得出生日、年龄和性别

    在 JavaScript 中,你可以使用正则表达式来提取身份证号中的出生日期、年龄和性别信息。下面是一个实现此功能的例子:

    2024年02月12日
    浏览(43)
  • 数据库sql 根据身份证计算年龄段mysql、oracle

    mysql: mysql通过函数可以精确到日 结果: Oracle: oracle只是年份相减,不够精确 结果:

    2024年02月12日
    浏览(69)
  • java 计算年龄 Java 根据出生日期计算年龄

    1.把出生日期字符串转换为日期格式。  2.计算年龄  3.执行方法

    2024年02月11日
    浏览(56)
  • Java实现对手机号、身份证号、护照号脱敏

    背景: 我们在项目中经常会需要用到用户的敏感信息,比如手机号、身份证号、护照号; 当数据需要在页面上进行展示的时候就需要进行脱敏,将其中几位变为 *。 官方文档: https://www.hutool.cn/docs/#/core/工具类/信息脱敏工具-DesensitizedUtil Hutool依赖: 代码实现: 执行结果:

    2024年02月15日
    浏览(41)
  • MySQL中根据出生日期计算年龄

    创建student表 mysql create table student(                                                                                 -     sid int primary key comment \\\'学生号\\\',                                                      

    2024年01月18日
    浏览(43)
  • python根据出生日期计算年龄的源码

    将内容过程经常用的内容做个收藏,下面的内容段是关于python根据出生日期计算年龄的的内容。 #a function to find your age def age(): print “Enter Your Date of Birth” d=input(“Day:”) m=input(“Month:”) y=input(“Year:”) #get the current time in tuple format a=gmtime() #difference in day dd=a[2]-d #difference in

    2023年04月18日
    浏览(49)
  • MySQL根据出生日期计算年龄的五种方法比较

    方法一 缺陷,当日期为未来日期时结果为0,而不是负数; 这里用了5个函数和两个运算符。 方法二 解决了方法一为负数的问题,但看起来更复杂;这里使用了6个函数和3个运算符。 改良后方法一和方法二 改良后的方法一,少了一个函数和一个运算符,当日期为未来日期时计

    2024年02月11日
    浏览(44)
  • JS正则 身份证号脱敏

    【一】:说明: 身份证脱敏处理:/^(.{6})(?:d+)(.{4})$/,显示前6和后4,出生日期隐藏 【二】: 说明: 在上面的代码中,首先定义了一个身份证号变量 idCard ,然后定义了一个正则表达式 reg ,该正则表达式匹配身份证号的前6位和后4位,并使用括号将前6位和后4位分别分组。

    2024年02月05日
    浏览(47)
  • PHP校验身份证号是否正确

    用PHP语言实现校验身份证号的算法,供参考

    2024年02月06日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包