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 ...
随机推荐
- SpringCloud系列------Eureka-Server
一.概述: Spring Cloud针对服务注册与发现,进行了一层抽象,并提供了三种实现:Eureka , Consul , Zookeeper 本篇文章只对Eureka 进行介绍: (部分内容引用 ...
- winform 写入txt
StreamWriter sw; FileStream fs = new FileStream(@"D:\" + txtStringfield03.Text + ".tx ...
- FCC JS基础算法题(11):Seek and Destroy (摧毁数组)
题目描述: 实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值. 我们可以使用arguments来进行参数的遍历. function destroyer(arr) ...
- 获取Ueditor里面的图片列表,地址绝对化
/** * 内容中图片地址转成绝对地址 * @param $content * @return mixed */ private function imgUrl( ...
- 定义action的允许访问方式
publicfunction behaviors() { return[ 'verbs'=>[ 'class'=>VerbFilter::className(), 'actions'=&g ...
- 数据文件resize回收空间
场景说明: 客户 ASM磁盘组,data磁盘组空闲空间90G,空间不足,因此强烈建议回收空间 空间回收方案: 1.数据文件resize,回收部分可用性空间(好处就是能够将ASM磁盘组free大小增加) ...
- Tomcat下载和安装
一.Tomcat下载和安装 Tomcat 是一个免费的开放源代码的 Servlet 容器,它是 Apache 软件基金会的一个顶级项目,由 Apache,Sun和其他一些公司及个人共同开发而成.由于有 ...
- Python全栈之路----文件处理
文件操作分为读.写.修改,我们先从读开始 f = open(file = 'D:/工作日常/ABCD.txt',mode = 'r',encoding = 'utf-8') #file 是文件路径 m ...
- 与C/C++关键字extern有关的原理
关键字有一定的语义,但是用法不唯一. 对于C/C++语言的预编译.编译.汇编.链接.我相信大家在接触C++一年不到就背的滚瓜烂熟,但是其中的细节,是后来才慢慢想明白的.为什么我不讲extern关键字呢 ...
- Restful Service 中 DateTime 在 url 中传递
在C# url 中一旦包特殊字符,请求可能就无法送达.可以使用如下方法,最为便捷. 请求端: beginTime.Value.ToString("yyyyMMddHHmmss") ...