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 ...
随机推荐
- SQL-49 针对库中的所有表生成select count(*)对应的SQL语句
题目描述 针对库中的所有表生成select count(*)对应的SQL语句CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_dat ...
- design
type Config struct { Item lock } func (*Config) getItem(){ } func (*Config) SetItem(){ } channel : - ...
- 18-09-20 关于Xlwings读写基础1
一 利用xlwings 读取Excel 的读取修改数据 import xlwings as xw""" # 1. 读一个已存在的Excel文件:利用xlwings 读取E ...
- 清除微信小程序的缓存
小程序会在本地存储数据,当服务器数据更新后,通常在小程序上显示的还是旧的数据,点击右上角的关闭按钮,再次打开小程序同样没有更新. 怎样才能完全清除小程序的缓存数据? 删除小程序的方法是: 1.第一步: ...
- SIMTRACE环境搭建
搭建simtrace环境 工具环境搭建 仅作参考,具有时效性,请以官方文档为准. 跨平台编译工具arm-elf 参考链接:https://osmocom.org/projects/baseband/w ...
- ubuntu下安装php7
apt-cache pkgnames | grep php7.0 sudo apt-get install -y php7.0 libapache2-mod-php7.0 php7.0-cli php ...
- 剑指Offer 48. 不用加减乘除做加法 (其他)
题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 题目地址 https://www.nowcoder.com/practice/59ac416b4b944300 ...
- 【leetcode】415. Add Strings
problem 415. Add Strings solution: class Solution { public: string addStrings(string num1, string nu ...
- C语言笔记变量与数据类型
目录 1.转义字符 2.常量与变量 2.1 什么是常量和变量 2.2 内存 2.3 变量的内存机制 2.4 变量命名规则 2.5 变量的定义 2.6 常量的定义 2.7 计算机内存字节顺序 2.8 局 ...
- 关于eclipse项目创建maven项目目录不正常的解决方案
最近学习ssh和maven,遇到了很多问题····首先一个很基础的问题就是我搭建的maven项目目录和教程上的不一样.我的目录之前是这样的: 而教程里的是这样的========> 因为是跟着视频 ...