java根据身份证号码得到生日和性别
java根据身份证号码得到生日和性别
- IDCards工具类
- 执行结果
IDCards工具类
package com.liantuo.finance.utils;//身份证工具类
public class IDCards {/** * 根据身份证号码得到生日,并返回性别 * @param num * @return String[] string[0]生日 格式:19900510, string[1]性别* 如果证件类型非法,则返回null */ public static String[] getDataByNo(String num) {// 判断是否为空 if (num == null || num.trim().equals("")) { return null; } //得到证件号码长度 int length = num.length(); // 判断是否为15或18位 if (length != 15 && length != 18) { return null; } //如果证件号码为15位,转换为18位 if(length == 15){ num=uptoeighteen(num); }String[] data = new String[2];// 得到生日data[0] = num.substring(6, 14);// 校验性别data[1] = num.substring(14, 17);// 性别代码为偶数是女性奇数为男性if (Integer.parseInt(data[1]) % 2 == 0) {data[1] = "女";} else {data[1] = "男";}return data; }// 15位身份证号码提升为18位 private static String uptoeighteen(String fifteencardid) {String eightcardid = fifteencardid.substring(0, 6);eightcardid = eightcardid + "19"; eightcardid = eightcardid + fifteencardid.substring(6, 15); eightcardid = eightcardid + getVerify(eightcardid); return eightcardid; }// 得到第18位的校验码 private static String getVerify(String eightcardid) {int remaining = 0; int[] wi = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 }; int[] vi = { 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 }; int[] ai = new int[18]; String returnStr = null;try { if (eightcardid.length() == 18) { eightcardid = eightcardid.substring(0, 17); } if (eightcardid.length() == 17) { int sum = 0; String k = null;for (int i = 0; i < 17; i++) { k = eightcardid.substring(i, i + 1); ai[i] = Integer.parseInt(k);k = null; } for (int i = 0; i < 17; i++) { sum = sum + wi[i] * ai[i]; } remaining = sum % 11; } returnStr = remaining == 2 ? "X" : String.valueOf(vi[remaining]);} catch (Exception ex) {return null; } finally { wi = null; vi = null; ai = null; } return returnStr; }public static void main(String[] args) {String[] dataByNo = getDataByNo("xxxxxxxxxxxx");System.out.println(dataByNo[0]);System.out.println(dataByNo[1]);}}
执行结果
java根据身份证号码得到生日和性别相关推荐
- 录入学员的身份证后控件焦点转移时根据身份证号码获得生日和性别
自从接触了报名系统,认证系统,才知道身份证号码里面的信息大有乾坤,以18位的身份证来说,前面六位代表了你户籍所在地,第七位到第十四位代表了你的出生年月,第十五位到第十七为代表了你的性别(偶数为女,奇数 ...
- 根据身份证号码生成生日和性别
/**/ /*modify bzl 2007-07-12根据身份证号码生成生日和性别*/ String ls_date,ls_id,ls_sex,ls_month,ls_day,ls_yea ...
- 转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 ...
- 身份证、护照验证 身份证号码获取生日、性别信息
2019独角兽企业重金招聘Python工程师标准>>> 功能描述 录入一些客户的信息,证件验证,例如身份证.护照验证等.身份证号码验证正确以后,手动录入后实现能自动显示生日.性别 信 ...
- 根据身份证号码计算生日/年龄/性别
话不多说直接上代码: /*** 通过身份证号码获取出生日期(birthday).年龄(age).性别(sex)* @param idCardNo 身份证号码* @return 返回的出生日期格式:19 ...
- 根据身份证号码导出生日和性别(JavaScript代码)
<script language="Javascript"> function showBirthday(val) { var birthdayValue ...
- js正则验证身份证号码并 根据号码获取生日和性别
最近项目中碰到一个需求,根据用户输入的身份证号码自动识别生日,和性别,为此专门在网上找了下资料了解了下,建议先了读一遍下边的文章 身份证信息介绍: https://baijiahao.baidu.co ...
- java验证身份证号码是否有效源代码
转载自 java验证身份证号码是否有效源代码 1.描述 用java语言判断身份证号码是否有效,地区码.出身年月.校验码等验证算法 2.源代码 package test; import java.t ...
最新文章
- springboot设置文件上传大小(tomcat默认1M)
- 我在 GitHub 上看到了一个丧心病狂的开源项目!治好了我的拖延症
- Python使用SMTP发送邮件
- 《ASP.NET Core 微服务实战》-- 读书笔记(第6章)
- 攻克python3-面向对象
- react native基础-(一)react和react native基础
- window常用设置和命令
- 不明白如何将批量图片格式转换?2招教你们快速搞定
- openjtag openocd libftd2xx
- php 静态变量 引用,PHP的返回引用(方法名前加)和局部静态变量(static)
- 沐风:立刻改变你的现状
- JAVA百分比排序方法实现
- 好用的vue瀑布流插件-vue-masonry
- JAVA——基于控制台的购书系统
- Discuz!电脑版、手机版去除标题title中的Powered by Discuz!
- MySQL_MySQL基础查询(DQL)
- GhostXP_SP2电脑公司经典版_v8.0
- 2019-12-3 《网络安全法》学习
- 仙境传说-按键精灵脚步研究
- 探一探,非常实用的GIF图圆角控件(3行代码)