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 ...
随机推荐
- Centos7修改分区空间
一:缩小/home空间 1.1:备份/home内容 cp -r /home/* /homebak 1.2:删除挂载/home umount /home 1.3:删除/home所在lv lvremove ...
- Spring Boot笔记之自定义启动banner
控制banner内容 Spring Boot启动的时候默认的banner是spring的字样,看多了觉得挺单调的,Spring Boot为我们提供了自定义banner的功能. 自定义banner只需要 ...
- centos7.4 分区 格式化
1. 查看磁盘 [root@yzb-centos72-3 ~]# fdisk -l Disk /dev/vda: 32.2 GB, 32212254720 bytes, 62914560 sector ...
- Python 进程池的同步方法和异步方法
import time from multiprocessing import Process,Pool def f1(n): time.sleep(0.5) # print(n) return n* ...
- L2-018. 多项式A除以B*
L2-018. 多项式A除以B 参考博客 #include <iostream> #include <map> #include <cmath> #include ...
- 自动化测试-6.selenium的css定位
前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css ...
- lettuce行为驱动总结
1. pip install lettuce 在Python2.7下安装的 2. py -3 –m pip install lettuce 在Python3下安装的 3. 执行:进到featur ...
- sklearn.model_selection.StratifiedShuffleSplit
sklearn.model_selection.StratifiedShuffleSplit
- Http原理与实践
Http原理 一.使用Http协议最简单的例子 1.输入URL打开网页 2.AJAX获取数据 3.img标签加载图片 二.Cache-Control 1.public.private 2.must-r ...
- Spring Cloud(Dalston.SR5)--Zuul 网关-路由配置
Spring Cloud 在 Zuul 的 routing 阶段实现了几个过滤器,这些过滤器决定如何进行路由工作. 简单路由(SimpleHostRoutingFilter) 该过滤器运行后,会将 H ...