通过身份证号码获取年龄和出生日期
一 获取年龄
首先要在实体类中定义年龄(age)和身份证号码(idcard)
//身份证号码private String idcard;public String getIdcard() {return idcard;}public void setIdcard(String idcard) {this.idcard = idcard;}
//年龄private Integer age;public Integer getAge() {return getAgeByIdcard(idcard);}public void setAge(String idcard) {this.age = getAgeByIdcard(idcard);}
然后通过身份证号码获取年龄
/*** 根据身份证号获取年龄* @param IDCard* @return*/public static Integer getAgeByIdcard(String idcard){Integer age = 0;//获取当前时间Calendar cal = Calendar.getInstance();Date date = new Date();//15位身份证号if (idcard.length() == 15){// 身份证上的年份(15位身份证为1980年前的)String uyear = "19" + idcard.substring(6, 8);// 身份证上的月份String uyue = idcard.substring(8, 10);// 当前年份int fyear = cal.get(Calendar.YEAR);// 当前月份int fyue = cal.get(Calendar.MONTH) + 1;if (Integer.parseInt(uyue) <= fyue) {age = fyear - Integer.parseInt(uyear) + 1;// 当前用户还没过生} else {age = fyear - Integer.parseInt(uyear);}//18位身份证号}else if(idcard.length() == 18){// 身份证上的年份String year = idcard.substring(6).substring(0, 4);// 身份证上的月份String yue = idcard.substring(10).substring(0, 2);// 当前年份// 当前年份int fyear = cal.get(Calendar.YEAR);// 当前月份int fyue = cal.get(Calendar.MONTH) + 1;// 当前月份大于用户出身的月份表示已过生日if (Integer.parseInt(yue) <= fyue) {age = fyear - Integer.parseInt(year) + 1;// 当前用户还没过生日} else {age = fyear - Integer.parseInt(year);}}return age;}
二 获取出生年月
首先要在实体类中定义出生年月(birthday)和身份证号码(idcard)
//出生年月
private String birthday;public void setBirthday(String idcard) {this.birthday = getBirthdayByIdcard(idcard);}public String getBirthday() {return getBirthdayByIdcard(idcard);}
//身份证号码
private String idcard;public String getIdcard() {return idcard;}public void setIdcard(String idcard) {this.idcard = idcard;}
通过身份证号码获取出生年月
/*** 获取出生日期 yyyy/MM/dd* @param idcard* @return*/public static String getBirthdayByIdcard(String idcard){String birthday="";String year="";String month="";String day="";//15位身份证号if (idcard.length() == 15){// 身份证上的年份(15位身份证为1980年前的)year = "19" + idcard.substring(6, 8);//身份证上的月份month = idcard.substring(8, 10);//身份证上的日期day= idcard.substring(10, 12);//18位身份证号}else if(idcard.length() == 18){// 身份证上的年份year = idcard.substring(6).substring(0, 4);// 身份证上的月份month = idcard.substring(10).substring(0, 2);//身份证上的日期day=idcard.substring(12).substring(0,2);}birthday=year+"/"+month+"/"+day;return birthday;}
通过身份证号码获取年龄和出生日期相关推荐
- SQL 根据身份证号码获取年龄的函数
在数据库的运用过程中,我们时常会碰到根据身份证号码来获取当前的年龄,今天我在这里写了一个函数,就是关于获取年龄的 create or replace function FUNC_COMPARE_SFZ ...
- 转java通过身份证号码获取出生日期、性别、年龄
转自:https://blog.csdn.net/u011199063/article/details/79564587 身份证号码: 15位:6位地址码+6位出生年月日(900101代表1990年1 ...
- java通过身份证号码获取出生日期、性别、年龄
身份证号码: 15位:6位地址码+6位出生年月日(900101代表1990年1月1日出生)+3位顺序码 18位:6位地址码+8位出生年月日(19900101代表1990年1月1日出生)+3位顺序码+1 ...
- 通过身份证号码获取出生日期、性别、年龄
/*** 通过身份证号码获取出生日期.性别.年龄** @param certificateNo* @return 返回的出生日期格式:1990-01-01 性别格式:F-女,M-男*/public s ...
- JS身份证号码校验,JS根据身份证号码获取出生年月日,JS根据出生年月日获取年龄,JS根据身份证号码获取性别
目录 1.JS身份证号码校验 2.JS根据身份证号码获取出生年月日 3.JS根据出生年月日获取年龄 4.JS根据身份证号码获取性别 1.JS身份证号码校验 /*** 身份证校验** @export* ...
- JAVA通过身份证号码获取出生年月、年龄及性别
package com.acat.util;import org.apache.commons.lang.StringUtils;import java.text.ParseException; im ...
- excel表格中18位身份证号码如何转换成出生日期
1.获取出生日期,如果Excel表上,如果A1为身份证号码. =IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2)&&quo ...
- 【Flutter】Dart 校验身份证号合法性,根据身份证号获取年龄性别
js版或OC.Java版的都容易找到,Dart版的比较少,mark一下吧. // 校验身份证合法性 bool verifyCardId(String cardId) {const Map city = ...
- python利用datetime库实现通过身份证号码判断年龄、男女,并输出生日
python利用datetime库实现通过身份证号码判断年龄.男女,并输出生日 实现很简单,直接上代码 import datetimeID=str(input("输入身份证号码") ...
- Java身份证号脱敏、校验身份证号合法性、根据身份证号获取年龄、根据生日获取年龄
这里写目录 身份证号编码规则 身份证号脱敏 身份证号合法性校验 根据身份证号获取年龄 根据生日日期获取年龄 根据身份证号获取年龄.生日的Map集合 身份证号编码规则 第一.二位表示省(自治区.直辖市. ...
最新文章
- Typora开始收费,介绍几款免费的MarkDown编辑器
- my sql Group_concat函数
- Mac OS安装octave出现的问题-'error:terminal type set to 'unknown'的解决'
- dotnet 找不到控制生成器_真的有自媒体原创文章生成器吗?
- 年度大战即将拉开!iPhone 11系列后,轮到华为Mate30系列表演了
- java 运行500错误_MyEclipse运行JAVA Web时出现HTTP Status 500错误
- python常用的库与包_python常用到哪些库?
- Jsoup爬虫新手一
- 如何提升深度学习的性能
- LabVIEW formula node
- matlab模拟塞曼图谱,塞曼效应理论与实验分析.doc
- 寻道,思考人生的价值(观小米十周年演讲有感)
- 我的世界科学计算机,在我的世界打造一台计算机有多难?复旦大神花了一年
- 在Linux下完美运行Windows PC版QQ/TIM教程
- 一个小需求引发的思考
- maya阿诺德渲染失败_maya2018无法加载ARNOLD渲染器?maya2018中ARNOLD渲染器加载不了怎么办?...
- 2020目前比较流行的网站开发框架
- WPF中使用InteractiveDataDisplay控件画图
- 错误:Unfortunately you can‘t have non-Gradle Java modules and Android-Gradle modules in one project.
- 口嫌体正直,“苹果”们纷纷下场造车
热门文章
- If you insist running as root, then set the environment variable RUN_AS_USER=root
- JZOJ4816. label
- 计算机中的原码、反码和补码计算
- 2021年茶艺师(初级)考试题库及茶艺师(初级)作业考试题库
- 系统框图之phy框图100M网络
- ASP.NET性能调优
- 关于给青轴润轴消除弹簧音[误]
- 怎么把电脑上的python软件卸载干净_怎么把一个软件卸载干净 把一个软件卸载干净的两种方法...
- 奇怪的同床人:指纹现象……或state.gov与facebook.com
- Linux系统下Lame环境的搭建