import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.HashMap;

import java.util.Map;

public class CardUtil {

/**

* 根据身份证的号码算出当前身份证持有者的性别和年龄 18位身份证

*

* @return

* @throws Exception

*/

public static Map<String, Object> getCarInfo(String CardCode)

throws Exception {

Map<String, Object> map = new HashMap<String, Object>();

String year = CardCode.substring(6).substring(0, 4);// 得到年份

String yue = CardCode.substring(10).substring(0, 2);// 得到月份

// String day=CardCode.substring(12).substring(0,2);//得到日

Integer sex;

if (Integer.parseInt(CardCode.substring(16).substring(0, 1)) % 2 == 0) {// 判断性别

sex =1; //"女";

} else {

sex =0; //"男";

}

Date date = new Date();// 得到当前的系统时间

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

String fyear = format.format(date).substring(0, 4);// 当前年份

String fyue = format.format(date).substring(5, 7);// 月份

// String fday=format.format(date).substring(8,10);

int age = 0;

if (Integer.parseInt(yue) <= Integer.parseInt(fyue)) { // 当前月份大于用户出身的月份表示已过生

age = Integer.parseInt(fyear) - Integer.parseInt(year) + 1;

} else {// 当前用户还没过生

age = Integer.parseInt(fyear) - Integer.parseInt(year);

}

map.put("sex", sex);

map.put("age", age);

return map;

}

/**

* 15位身份证的验证

*

* @param

* @throws Exception

*/

public static Map<String, Object> getCarInfo15W(String card)throws Exception {

Map<String, Object> map = new HashMap<String, Object>();

String uyear = "19" + card.substring(6, 8);// 年份

String uyue = card.substring(8, 10);// 月份

// String uday=card.substring(10, 12);//日

String usex = card.substring(14, 15);// 用户的性别

String sex;

if (Integer.parseInt(usex) % 2 == 0) {

sex = "女";

} else {

sex = "男";

}

Date date = new Date();// 得到当前的系统时间

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

String fyear = format.format(date).substring(0, 4);// 当前年份

String fyue = format.format(date).substring(5, 7);// 月份

// String fday=format.format(date).substring(8,10);

int age = 0;

if (Integer.parseInt(uyue) <= Integer.parseInt(fyue)) { // 当前月份大于用户出身的月份表示已过生

age = Integer.parseInt(fyear) - Integer.parseInt(uyear) + 1;

} else {// 当前用户还没过生

age = Integer.parseInt(fyear) - Integer.parseInt(uyear);

}

map.put("sex", sex);

map.put("age", age);

return map;

}

}

CardUtil算出当前身份证持有者的性别和年龄的更多相关文章

  1. js脚本根据身份证号获取性别、年龄、家庭地址、生日

    做项目测试时需要根据身份证号获取其信息,也不想调接口,就自己在本地通过收集资料整合了一个

  2. js 根据身份证号获取性别,年龄,等

    $(function(){        $("#corpOwnerIdno").blur(function(){          //获取输入身份证号码             ...

  3. sqlalchemy 模型中添加根据身份证号计算性别和年龄

    class Users(Base, BaseMixin): username = Column(String(24)) id_Num = Column(String(18) ) # 身份证号码 @pr ...

  4. java根据身份证号和获取用户年龄和性别的工具类

    import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util ...

  5. PHP通过身份证号码获取性别、出生日期、年龄等信息

    $sex = substr($idcard, (strlen($idcard)==18 ? -2 : -1), 1) % 2 ? '1' : '2'; //18位身份证取性别,倒数第二位奇数是男,偶数 ...

  6. Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳

    Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳 早期的身份证号码为15位数字,现在使用的身份证号码为18位数字,它们的含义如下:(1)15位:1-6位为地区代码,7-8位 ...

  7. java 根据身份证号码获取出生日期、性别、年龄

      1.情景展示 如何根据身份证号,计算出出生日期.性别.年龄? 2.解决方案 从网上找的别人的,因为并没有实际用到,所以并未对其优化! /** * 通过身份证号码获取出生日期.性别.年龄 * @pa ...

  8. iOS之由身份证号返回性别

    该博文出自:http://www.cnblogs.com/yang-guang-girl/p/5683454.html - (void)viewDidLoad { [super viewDidLoad ...

  9. 【代码笔记】iOS-由身份证号码返回性别

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...

随机推荐

  1. Codeforces A. Kyoya and Colored Balls(分步组合)

    题目描述: Kyoya and Colored Balls time limit per test 2 seconds memory limit per test 256 megabytes inpu ...

  2. python笔记44-HTTP对外接口sign签名

    前言 一般公司对外的接口都会用到sign签名,对不同的客户提供不同的apikey ,这样可以提高接口请求的安全性,避免被人抓包后乱请求. sign签名是一种很常见的方式 sign签名 签名参数sign ...

  3. vue实现分页组件

    创建pagination.vue /* * 所需参数 * total Number 总页数 * current Number 当前页面下标 * pageSize Number 页面显示条数 * siz ...

  4. Template Function

    // TemplateFunction.cpp : Defines the entry point for the console application. // #include "std ...

  5. SSH和SSM对比(一)

    当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知识能力.MVC,即模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界 ...

  6. 编程语言的类型修饰符modifiers

    编程语言修饰符,代表语言要素与常规表达不同的语义: 这些语义的不同需要编译器和运行时作出不同的解释: 作用域.访问: 生命周期: 同步异步: 多态: 纯函数: 注解: 懒加载: 编译器合成:

  7. OpenCV应用(4)雄迈相机网络取图

    第一种办法 单张图获取 网页打开#//http://192.168.1.82/webcapture.jpg?command=snap&channel= 1 网页打开直接抓一张图 python ...

  8. 常用方法 Excel转换为DataSet

    注意一下Excel格式,我平时导入的是xlsx /// <summary> /// Excel 转换为 DataSet /// </summary> /// <param ...

  9. Java实现一个简单的事件监听器

    关于事件监听我们需要知道的一些基础知识. a)事件三要素(who when what): source -- 事件源 when -- 事件发生时间 message -- 事件主题消息,即希望通过事件传 ...

  10. tidyr

    tidyr包主要提供了数据整理和清洗的功能,包括 1. 数据框的变形 2. 处理数据框中的空值 3. 根据一个表格衍生出其他表格 4. 实现行或列的分隔和合并 该包将要用的数据处理成标准且统一的数据框 ...