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. MySQL 自带的4个系统数据库的说明

    自带的4个系统数据库:information_schema.mysql.performance_schema.sys: information_schema:这个数据库保存了mysql服务器所有数据库 ...

  2. git提交时报错处理办法

    git提交时报错:Updates were rejected because the tip of your current branch is behind: 有如下几种解决方法: 1.使用强制pu ...

  3. 接口自动化--日志类封装(logging)

    上篇随笔已经写到了读取Excel类的封装了,下面就写下日志类, 日志类在我们自动化的过程中是十分重要的,在我们的自动化程序出现异常的时候就可以打印日志 下面是我自己封装的日志类 import logg ...

  4. Elasticsearch 中的 ignore_above

    检索超过ignore_above设定长度的字段后,无法返回结果

  5. Elasticsearch(一)基础入门

    介绍 Elasticsearch 是一个实时的分布式搜索分析引擎, 它能让你以前所未有的速度和规模,去探索你的数据. 它被用作全文检索.结构化搜索.分析以及这三个功能的组合: Elasticsearc ...

  6. 电商平台+keepalived高可用

    192.168.189.131 电商平台 192.168.189.129 MySQL主192.168.189.130 MySQL备192.168.189.181 VIP 配置MySQL为互为主从并结合 ...

  7. js-Cannot read property 'innerHTML' of null

    原因:1.$('#xxx') 或$('.xxx')不存在 2.$('#xxx')或$('.xxx')的值为空

  8. 验证码破解 | Selenium模拟登录简书

    使用超级鹰打码平台处理登录的文字点击验证码 import time from io import BytesIO from PIL import Image from selenium import ...

  9. python函数 | 三元运算

    三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值 格式: [on_true] if [expression] else [on_false] 三元运算只适用于简单的if else判断,再多一层 ...

  10. A1137 | 录数据查询模拟

    这应该是比较简单的一个模拟题,但是考试的时候花了较长的时间,并且最后一个case没过,丢了6分.这题的通过率不高,可见最后一个case还是有挑战性的. 考试的时候想的是在录数据的时候建立一个[ID]到 ...