java根据身份证号和获取用户年龄和性别的工具类
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map; /**
* 身份证信息算法类
*
* @author javaweb
*
*/
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);//得到日
String sex;
if (Integer.parseInt(CardCode.substring(16).substring(0, 1)) % 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(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;
} }
java根据身份证号和获取用户年龄和性别的工具类的更多相关文章
- js从身份证号中获取出生日期和性别
今天,在做移动端的项目中,按照设计稿的要求,是可以让用户自己输入出生日期的,我还很认真的用了刚刚知道的html5表单的日期类型,本想着终于不用日期插件就可以实现用户选择自己的出生日期了,可结果老大说, ...
- mysql根据身份证信息来获取用户属性信息
需要:根据身份证信息来获取用户属性 方法:可以使用如下sql语句: ) ' then '北京市' ' then '天津市' ' then '河北省' ' then '山西省' ' then '内蒙古自 ...
- sql server 根据身份证号计算出生日期和年龄的存储过程
我这边有一个业务,需要客户填写身份证号,自动计算他的出生日期和年龄 在sql中,具体的存储过程实现是这样的: /******************************************** ...
- javascript根据身份证号判断精确周岁年龄
前言: 根据身份证号判断精确周岁年龄,可以精确到天,即周岁以生日当天为准,生日当天周岁+1,少一天则不加. 实现方法: <!DOCTYPE html> <html> <h ...
- Java中Date类型如何向前向后滚动时间,( 附工具类)
Java中的Date类型向前向后滚动时间(附工具类) 废话不多说,先看工具类: import java.text.SimpleDateFormat; import java.util.Calendar ...
- JAVA微信公众号网页开发 —— 用户授权获取openid
官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842 HttpClientUtil.java packa ...
- js中如何通过身份证号计算出生日期和年龄
在html中有如下标签 身份证号:<input type="text" id="Gra_IDCard" onChange="IDCardChan ...
- 教你一招:根据身份证号计算出生年月和年龄 text函数和mid函数混用 datedif函数和today函数混用
在电子表格Excel中,使用text函数和mid函数混用,根据身份证号计算出生年月: =text(mid(A2,,),"0!/00!/00") #0!/00!/00 为日期的格式# ...
- PHP之路——微信公众号授权获取用户信息
官方文档链接:http://mp.weixin.qq.com/wiki/4/9ac2e7b1f1d22e9e57260f6553822520.html /** * 获取code */ public f ...
随机推荐
- 《c程序设计语言》读书笔记-5.3-指针实现strcat
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> ...
- AB序列 凹函数的性质
链接:https://www.nowcoder.com/acm/contest/113/B来源:牛客网 题目描述 给长度为n的序列A,长度为m的序列B.可以给A序列里每个元素加上x且B序列里每个元素减 ...
- bzoj 4897 天赋 有向图的矩阵数定理
4894: 天赋 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 104 Solved: 80[Submit][Status][Discuss] De ...
- Nodejs express框架 浅析
http://www.expressjs.com.cn/ 1. 中间件 ①挂载中间件的函数:app.use var http = require('http'); var express = requ ...
- js限定内容的溢出滚动(offset,style.left)
1. .html: <div class="test" style="position: relative;"> <ul id="c ...
- spring boot 2.0之后默认的连接池 HIkariCP介绍
HIkariCP链接池比之传统的Tomcat JDBC datasource .c3p0 datasource 等传统链接池优势太大,在获取链接释放链接,执行效率上面高出很多,这个产品的口号是“快速. ...
- OpenGL “太阳、地球和月亮”天体运动动画 例子
http://oulehui.blog.163.com/blog/static/7961469820119186616743/ OpenGL “太阳.地球和月亮”天体运动动画 例子 2011-10-1 ...
- centos 资源链接
不时更新.. 安装.启动相关 自动安装的精简的ISO 教你制作属于自己的CentOS 6.4一键自动化安装ISO镜像光盘 initrd介绍 理解 vmlinuz, initrd 和 System.ma ...
- Juce-强大的开源类库
介绍 Juce是一个完全围绕C++语言的类库,用来开发跨平台的应用程序. 完整的用doxgen生成的html形式的API手册可以在这里下到.或者可以从下载页面下载预编译的windows帮助文件. 想获 ...
- 达梦数据库CAST与ROUND函数
https://blog.csdn.net/zry1266/article/details/50856260