Java 身份证判断性别获取年龄
import com.alibaba.fastjson.JSON;
import org.junit.Test;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map; /**
* @author ceshi
* @Title: CardJunitTest
* @ProjectName CardJunitTest
* @Description: TODO
* @date 2018/7/2622:53
*/
public class CardJunitTest { private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); @Test
public void test(){
try {
System.out.println(JSON.toJSON(identityCard18("**********")));
System.out.println(JSON.toJSON(identityCard15("*********")));
}catch (Exception e){
e.printStackTrace();
}
} /**
* 18位身份证获取性别和年龄
* @param CardCode
* @return
* @throws Exception
*/
public static Map<String, Object> identityCard18(String CardCode) throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
// 得到年份
String year = CardCode.substring(6).substring(0, 4);
// 得到月份
String month = CardCode.substring(10).substring(0, 2);
//得到日
//String day=CardCode.substring(12).substring(0,2);
String sex;
// 判断性别
if (Integer.parseInt(CardCode.substring(16).substring(0, 1)) % 2 == 0) {
sex = "女";
} else {
sex = "男";
}
// 得到当前的系统时间
Date date = new Date();
// 当前年份
String currentYear = format.format(date).substring(0, 4);
// 月份
String currentMonth = format.format(date).substring(5, 7);
//String currentdDay=format.format(date).substring(8,10);
int age = 0;
// 当前月份大于用户出身的月份表示已过生日
if (Integer.parseInt(month) <= Integer.parseInt(currentMonth)) {
age = Integer.parseInt(currentYear) - Integer.parseInt(year) + 1;
} else {
// 当前用户还没过生日
age = Integer.parseInt(currentYear) - Integer.parseInt(year);
}
map.put("sex", sex);
map.put("age", age);
return map;
} /**
* 15位身份证获取性别和年龄
* @param card
* @return
* @throws Exception
*/
public static Map<String, Object> identityCard15(String card) throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
//年份
String year = "19" + card.substring(6, 8);
//月份
String yue = card.substring(8, 10);
//日
//String day=card.substring(10, 12);
String sex;
if (Integer.parseInt(card.substring(14, 15)) % 2 == 0) {
sex = "女";
} else {
sex = "男";
}
// 得到当前的系统时间
Date date = new Date();
//当前年份
String currentYear = format.format(date).substring(0, 4);
//月份
String currentMonth = format.format(date).substring(5, 7);
//String fday=format.format(date).substring(8,10);
int age = 0;
//当前月份大于用户出身的月份表示已过生日
if (Integer.parseInt(yue) <= Integer.parseInt(currentMonth)) {
age = Integer.parseInt(currentYear) - Integer.parseInt(year) + 1;
} else {
// 当前用户还没过生日
age = Integer.parseInt(currentYear) - Integer.parseInt(year);
}
map.put("sex", sex);
map.put("age", age);
return map;
} }
运行结果:

Java 身份证判断性别获取年龄的更多相关文章
- php通过身份证判断性别
/** 已测试,百度很多写法不行的 * 1就是男性 2就是女性* 通过身份证获取性别类型* @param type $card* @return int*/function getCardSex($i ...
- java 根据身份证号码获取出生日期、性别、年龄
1.情景展示 如何根据身份证号,计算出出生日期.性别.年龄? 2.解决方案 从网上找的别人的,因为并没有实际用到,所以并未对其优化! /** * 通过身份证号码获取出生日期.性别.年龄 * @pa ...
- java根据身份证号和获取用户年龄和性别的工具类
import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util ...
- Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳
Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳 早期的身份证号码为15位数字,现在使用的身份证号码为18位数字,它们的含义如下:(1)15位:1-6位为地区代码,7-8位 ...
- js脚本根据身份证号获取性别、年龄、家庭地址、生日
做项目测试时需要根据身份证号获取其信息,也不想调接口,就自己在本地通过收集资料整合了一个
- js 根据身份证号获取性别,年龄,等
$(function(){ $("#corpOwnerIdno").blur(function(){ //获取输入身份证号码 ...
- IOS 根据身份证号码获取 年龄 生日 性别
/** 从身份证上获取年龄 18位身份证 */ -(NSString *)getIdentityCardAge:(NSString *)numberStr { NSDateFormatter *for ...
- Excel自动从身份证中提取生日、性别、年龄
现在学生的身份证号已经全部都是18位的新一代身份证了,里面的数字都是有规律的.前6位数字是户籍所在地的代码,7-14位就是出生日期.第17位“2”代表的是性别,偶数为女性,奇数为男性.我们要做的就是把 ...
- CardUtil算出当前身份证持有者的性别和年龄
import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util ...
随机推荐
- overload(重载)和override(覆盖)的注意点
使用overload(重载)的几个注意点: 在使用重载时只能通过不同的参数形式.例如:不同的参数类型,不同的参数个数,不同的参数顺序,当然,同一个方法内的几个参数类型必须不一样.例如可以是fun(in ...
- 前端开发【第一篇: HTML】
HTML初识 1.什么是HTML? HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记). 2.网页的组成 我们平时 ...
- 疑问:VS在调试的过程中,总是会提示正在加载picface.dll的符号,然后卡死在那
环境: 硬件环境: PC 软件环境: Windows7 VS2012 MFC程序调试 现象: 调试的过程中,提示“正在从以下目录加载picface.dll的符号:C:\windows\dll”,然后就 ...
- wc语法
统计当前目录下的所有文件行数: wc -l * 当前目录以及子目录的所有文件行数: find . * | xargs wc -l 可以把*改成所要匹配的文件,例如Java文件,*.java这样就只统 ...
- 神州数码OSPF路由汇总配置
实验要求:掌握OSPF路由汇总配置 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface s0/1 进入端口 ip addres ...
- Homebrew简介及安装,Mac 包管理
Homebrew简介及安装 Homebrew官网 http://brew.sh/index_zh-cn.html Homebrew是神马 Linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两 ...
- Spring Cloud 请求重试机制核心代码分析
场景 发布微服务的操作一般都是打完新代码的包,kill掉在跑的应用,替换新的包,启动. spring cloud 中使用eureka为注册中心,它是允许服务列表数据的延迟性的,就是说即使应用已经不在服 ...
- Linux下常用工具
GUI篇 计算器gnome-calculator pdf阅读envince 虚拟机virtualbox vnc tigervnc-server and client 网络连接network-manag ...
- cocos2dx解决中文乱码方法
使用plist文件,优点方便做多国语言支持~也不用去做编码转换 1.Resource目录下新建text.plist文件,内容格式如下 <?xml version="1.0" ...
- 关于css样式错乱
在浏览器中的console中执行以下代码会有惊喜哦: [].forEach.call($$("*"), function(a) { a.style.outline = " ...