一 获取年龄

首先要在实体类中定义年龄(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;}

通过身份证号码获取年龄和出生日期相关推荐

  1. SQL 根据身份证号码获取年龄的函数

    在数据库的运用过程中,我们时常会碰到根据身份证号码来获取当前的年龄,今天我在这里写了一个函数,就是关于获取年龄的 create or replace function FUNC_COMPARE_SFZ ...

  2. 转java通过身份证号码获取出生日期、性别、年龄

    转自:https://blog.csdn.net/u011199063/article/details/79564587 身份证号码: 15位:6位地址码+6位出生年月日(900101代表1990年1 ...

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

    身份证号码: 15位:6位地址码+6位出生年月日(900101代表1990年1月1日出生)+3位顺序码 18位:6位地址码+8位出生年月日(19900101代表1990年1月1日出生)+3位顺序码+1 ...

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

    /*** 通过身份证号码获取出生日期.性别.年龄** @param certificateNo* @return 返回的出生日期格式:1990-01-01 性别格式:F-女,M-男*/public s ...

  5. JS身份证号码校验,JS根据身份证号码获取出生年月日,JS根据出生年月日获取年龄,JS根据身份证号码获取性别

    目录 1.JS身份证号码校验 2.JS根据身份证号码获取出生年月日 3.JS根据出生年月日获取年龄 4.JS根据身份证号码获取性别 1.JS身份证号码校验 /*** 身份证校验** @export* ...

  6. JAVA通过身份证号码获取出生年月、年龄及性别

    package com.acat.util;import org.apache.commons.lang.StringUtils;import java.text.ParseException; im ...

  7. excel表格中18位身份证号码如何转换成出生日期

    1.获取出生日期,如果Excel表上,如果A1为身份证号码. =IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2)&&quo ...

  8. 【Flutter】Dart 校验身份证号合法性,根据身份证号获取年龄性别

    js版或OC.Java版的都容易找到,Dart版的比较少,mark一下吧. // 校验身份证合法性 bool verifyCardId(String cardId) {const Map city = ...

  9. python利用datetime库实现通过身份证号码判断年龄、男女,并输出生日

    python利用datetime库实现通过身份证号码判断年龄.男女,并输出生日 实现很简单,直接上代码 import datetimeID=str(input("输入身份证号码") ...

  10. Java身份证号脱敏、校验身份证号合法性、根据身份证号获取年龄、根据生日获取年龄

    这里写目录 身份证号编码规则 身份证号脱敏 身份证号合法性校验 根据身份证号获取年龄 根据生日日期获取年龄 根据身份证号获取年龄.生日的Map集合 身份证号编码规则 第一.二位表示省(自治区.直辖市. ...

最新文章

  1. Typora开始收费,介绍几款免费的MarkDown编辑器
  2. my sql Group_concat函数
  3. Mac OS安装octave出现的问题-'error:terminal type set to 'unknown'的解决'
  4. dotnet 找不到控制生成器_真的有自媒体原创文章生成器吗?
  5. 年度大战即将拉开!iPhone 11系列后,轮到华为Mate30系列表演了
  6. java 运行500错误_MyEclipse运行JAVA Web时出现HTTP Status 500错误
  7. python常用的库与包_python常用到哪些库?
  8. Jsoup爬虫新手一
  9. 如何提升深度学习的性能
  10. LabVIEW formula node
  11. matlab模拟塞曼图谱,塞曼效应理论与实验分析.doc
  12. 寻道,思考人生的价值(观小米十周年演讲有感)
  13. 我的世界科学计算机,在我的世界打造一台计算机有多难?复旦大神花了一年
  14. 在Linux下完美运行Windows PC版QQ/TIM教程
  15. 一个小需求引发的思考
  16. maya阿诺德渲染失败_maya2018无法加载ARNOLD渲染器?maya2018中ARNOLD渲染器加载不了怎么办?...
  17. 2020目前比较流行的网站开发框架
  18. WPF中使用InteractiveDataDisplay控件画图
  19. 错误:Unfortunately you can‘t have non-Gradle Java modules and Android-Gradle modules in one project.
  20. 口嫌体正直,“苹果”们纷纷下场造车

热门文章

  1. If you insist running as root, then set the environment variable RUN_AS_USER=root
  2. JZOJ4816. label
  3. 计算机中的原码、反码和补码计算
  4. 2021年茶艺师(初级)考试题库及茶艺师(初级)作业考试题库
  5. 系统框图之phy框图100M网络
  6. ASP.NET性能调优
  7. 关于给青轴润轴消除弹簧音[误]
  8. 怎么把电脑上的python软件卸载干净_怎么把一个软件卸载干净 把一个软件卸载干净的两种方法...
  9. 奇怪的同床人:指纹现象……或state.gov与facebook.com
  10. Linux系统下Lame环境的搭建