转自:https://blog.csdn.net/u011199063/article/details/79564587

身份证号码:

  1. 15位:6位地址码+6位出生年月日(900101代表1990年1月1日出生)+3位顺序码

  2. 18位:6位地址码+8位出生年月日(19900101代表1990年1月1日出生)+3位顺序码+1位校验码

  • 1
  • 2
  • 3

地区码:

  1. 1、 第一、二位表示省(自治区、直辖市、特别行政区)。

  2. 2、 第三、四位表示市(地级市、自治州、盟及国家直辖市所属市辖区和县的汇总码)。其中,01-20,51-70表示省直辖市;21-50表示地区(自治州、盟)。

  3. 3、 第五、六位表示县(市辖区、县级市、旗)。01-18表示市辖区或地区(自治州、盟)辖县级市;21-80表示县(旗);81-99表示省直辖县级市。

  • 1
  • 2
  • 3
  • 4

顺序码:

顺序码奇数分给男性,偶数分给女性。
  • 1
  • 2

校验码:

作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且中国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。
  • 1
  • 2

代码:

  1. /**

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

  3. * @param certificateNo

  4. * @return 返回的出生日期格式:1990-01-01 性别格式:F-女,M-男

  5. */

  6. public static Map<String, String> getBirAgeSex(String certificateNo) {

  7. String birthday = "";

  8. String age = "";

  9. String sexCode = "";

  10. int year = Calendar.getInstance().get(Calendar.YEAR);

  11. char[] number = certificateNo.toCharArray();

  12. boolean flag = true;

  13. if (number.length == 15) {

  14. for (int x = 0; x < number.length; x++) {

  15. if (!flag) return new HashMap<String, String>();

  16. flag = Character.isDigit(number[x]);

  • }

  1. } else if (number.length == 18) {

  2. for (int x = 0; x < number.length - 1; x++) {

  3. if (!flag) return new HashMap<String, String>();

  4. flag = Character.isDigit(number[x]);

  5. }

  6. }

  7. if (flag && certificateNo.length() == 15) {

  8. birthday = "19" + certificateNo.substring(6, 8) + "-"

  9. + certificateNo.substring(8, 10) + "-"

  10. + certificateNo.substring(10, 12);

  11. sexCode = Integer.parseInt(certificateNo.substring(certificateNo.length() - 3, certificateNo.length())) % 2 == 0 ? "F" : "M";

  12. age = (year - Integer.parseInt("19" + certificateNo.substring(6, 8))) + "";

  13. } else if (flag && certificateNo.length() == 18) {

  14. birthday = certificateNo.substring(6, 10) + "-"

  15. + certificateNo.substring(10, 12) + "-"

  16. + certificateNo.substring(12, 14);

  17. sexCode = Integer.parseInt(certificateNo.substring(certificateNo.length() - 4, certificateNo.length() - 1)) % 2 == 0 ? "F" : "M";

  18. age = (year - Integer.parseInt(certificateNo.substring(6, 10))) + "";

  19. }

  20. Map<String, String> map = new HashMap<String, String>();

  21. map.put("birthday", birthday);

  22. map.put("age", age);

  23. map.put("sexCode", sexCode);

  24. return map;

转java通过身份证号码获取出生日期、性别、年龄相关推荐

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

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

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

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

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

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

  4. C# 根据身份证号码获取人员性别和出生年月

    C# 根据身份证号码获取人员性别和出生年月 //处理18位的身份证号码从号码中得到生日和性别代码if (identityCard.Length == 18){birthday = identityCa ...

  5. HTML身份证号校验及根据身份证号获取出生日期/性别

    一.HTML的方法都写在js里 若HTML.JS.CSS在一个HTML文件中,在HTML中使用HTML需要借助<scirpt>标签,使用<script>标签的方式有两种: 一种 ...

  6. Python 从身份证中提取出生日期/性别/年龄/生肖/星座/省份/城市/城市等级/区县(2019划分标准)

    写在前面 用python实现快速从身份证中explore尽量多的的信息,找了很多资料,发现并不全.参考已有的分享和其他信息自己写了. 能提取的信息: 出生日期.年龄.生肖.星座.省份.城市.区县.归属 ...

  7. jquery根据身份证号码计算出生日期、年龄、性别代码

    if(UUserCard != null && UUserCard != ''){ //获取出生日期 //var birthday = UUserCard.substring(6, 1 ...

  8. java根据身份证号码得到生日和性别

    java根据身份证号码得到生日和性别 IDCards工具类 执行结果 IDCards工具类 package com.liantuo.finance.utils;//身份证工具类 public clas ...

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

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

最新文章

  1. usaco Shaping Regions
  2. linux内核支持硬盘,Intel 10nm桌面版还是来了:Linux内核已支持
  3. vue移动端优秀框架收集
  4. 最简单的基于FFmpeg的libswscale的示例附件:测试图片生成工具
  5. 59. 螺旋矩阵 ||
  6. leetcode—17.递归题目python解答
  7. android mysql客户端_一款基于Android手机的MySQL客户端的设计与实现
  8. 科来网络分析系统网络故障分析方法
  9. java 读取Excel(.xls格式)
  10. 6个VMware桌面虚拟化的替代方案
  11. 计算上周一开始时间戳
  12. 年审是当月还是当天_车辆年检可以在到期当月进行吗
  13. c语言单链表的按序号查找,以下为单链表按序号查找的运算,分析算法,请在______处填上正确的语句。 pointer find_lklist(1kl...
  14. 基于opencv+python的角度测量
  15. 计算机组成原理六单元答案,计算机组成原理第六章中央处理器(含答案)
  16. 实用成都培训机构设计装修案例图解析
  17. HSDPA,HSUPA,HSPA+ 三种技术之间的区别
  18. .设计一个敏感词过滤程序
  19. 计算机英语情景对话二人组,英语小对话二人组日常情景对话(2)
  20. 【计算机程序设计思想与方法】2 什么是计算思维?

热门文章

  1. react里面 内联css样式怎么样_简单的使用Radium管理React中的内联样式
  2. MQTT-mosquitto学习笔记
  3. pubwin扫描安装
  4. android错误之解析包时出现问题(一)
  5. composer 升级/降级安装包
  6. 360度全景标定方法_一种360度全视角鸟瞰全景行车辅助标定方法与流程
  7. 全球家务机器人发展现状及未来趋势
  8. element表格标题两行设置办法
  9. LeetCode刷题——剑指offer深度优先搜索题目汇总
  10. h5在线制作平台h5案例分享