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-1128String 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根据身份证号计算年龄
java根据身份证号计算持有者年龄--超容易相关推荐
- Java 根据身份证号计算周岁年龄 工具类
package com.yao.utils; import java.util.Calendar; /** * 根据身份证号计算周岁年龄 * @author yaodd * @date 2021 ...
- java通过身份证号计算周岁年龄(附js计算)
最近项目上有一个需要根据身份证获取老人周岁的功能,本以为当前年直接减去身份证的出生年就好了.结果测试提了过了生日就是+1岁,没过生日才是正确的.于是呼,哗哗的改代码.下面分别贴出java计算和js计算 ...
- Java根据身份证号计算年龄
可以使用Java中的SimpleDateFormat类将身份证号中的出生日期解析为日期类型,然后使用ChronoUnit类计算出生日期和当前日期之间的时间差,最后除以365即可得到年龄. 代码示例如下 ...
- 通过身份证号 计算退休日期 例男60岁,女55岁退休
Java通过身份证号 计算退休日期 例男60岁,女55岁退休 直接上代码 /*** 根据身份证号计算退休日期* @return*/@ApiOperation("根据身份证号计算账号有效期&q ...
- sql server 根据身份证号计算出生日期和年龄的存储过程
我这边有一个业务,需要客户填写身份证号,自动计算他的出生日期和年龄 在sql中,具体的存储过程实现是这样的: /******************************************** ...
- js中如何通过身份证号计算出生日期和年龄
在html中有如下标签 身份证号:<input type="text" id="Gra_IDCard" onChange="IDCardChan ...
- 在JS中根据身份证号计算出生日期和年龄
1.根据身份证号计算出生日期 var identificationCardid=document.getElementById("identificationCardid").va ...
- EXCEL表格-根据身份证号计算性别、年龄(IF、MOD函数)
❤关注我,不迷路❤ 点击进入EXCEL综合应用场景专栏 本篇文章将介绍如何根据身份证号来计算出年龄.性别,先来讲解一些基础知识: 身份证号共18位,其中: (1)前1.2位数字表示:所在省份的代码: ...
- 根据身份证号计算年龄
根据身份证号计算年龄 /// <summary> /// 计算年龄 /// </summary> /// <param name=&quo ...
最新文章
- 使用 Strace 调试工具
- 数据通信技术(十:OSPF特殊区域TOTALLY STUB配置(ZTE))
- Maven下载、安装和配置(转)
- include_fns.php_管理页面
- f函数java_Java流:对N-1个元素执行f(),对N个元素执行g(),即,最后一个元素使用不同的函数...
- 有没有一些细分IT行业,没有35岁现象
- java颠倒字符串_Java经典实例:按字符颠倒字符串
- SpringMVC 环境搭建
- mybatis原始mapper开发未集成springMVC
- python3怎么安装docx_如何在 Python 3.4 上安装 python-docx
- linux锁定系统时间设置,Linux时间设置系统时间、硬件时间和时间服务
- 手把手教你写一个web聊天室之bookstap框架
- iOS 10 消息推送(UserNotifications)秘籍总结(一)
- pytorch中加入注意力机制(CBAM),以ResNet为例。到底要不要用ImageNet预训练?如何加预训练参数?
- 已有一个排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中
- 解惑“可观测性”与“监控”的不同
- 谷歌浏览器Google Chrome插件分享
- 【新人入门】HTML——前端纯小白新手入门
- 计算机英语写作话题,computer的英语话题作文
- 批处理获取笔记本电池状态
热门文章
- Android 9.0 去除锁屏界面及SystemUI无sim卡拨打紧急电话控件显示功能实现
- Python处理PDF神器PyMuPDF的安装与使用
- 工业机器人码垛教学实施_《工业机器人码垛工作站安装与调试》教学设计文本.doc...
- #Tensorflow Process finished with exit code 3#
- Cadence基本操作之——SOIC封装
- 【wpf】如果让Bingding 如何让后台数据强制更新界面
- flex-flex属性
- 水纹效果(Water)源程序.
- Herb Sutter简介
- UPC 2020年夏混合个人训练第八十一场