`

通过身份证号码查询个人身份信息

    博客分类:
  • java
 
阅读更多
package com.qb.modules.interfaces.befloan.common.util;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
  
  
public class IdcardInfoExtractor {  
      
     // 省份    
    private String province;    
    // 城市    
    private String city;    
    // 区县    
    private String region;    
    // 年份    
    private int year;    
    // 月份    
    private int month;    
    // 日期    
    private int day;    
    // 性别    
    private String gender;    
    // 出生日期    
    private Date birthday;   
    //年龄  
    private int age;  
    
    private Map<String, String> cityCodeMap = new HashMap<String, String>() {    
        {    
            this.put("11", "北京");    
            this.put("12", "天津");    
            this.put("13", "河北");    
            this.put("14", "山西");    
            this.put("15", "内蒙古");    
            this.put("21", "辽宁");    
            this.put("22", "吉林");    
            this.put("23", "黑龙江");    
            this.put("31", "上海");    
            this.put("32", "江苏");    
            this.put("33", "浙江");    
            this.put("34", "安徽");    
            this.put("35", "福建");    
            this.put("36", "江西");    
            this.put("37", "山东");    
            this.put("41", "河南");    
            this.put("42", "湖北");    
            this.put("43", "湖南");    
            this.put("44", "广东");    
            this.put("45", "广西");    
            this.put("46", "海南");    
            this.put("50", "重庆");    
            this.put("51", "四川");    
            this.put("52", "贵州");    
            this.put("53", "云南");    
            this.put("54", "西藏");    
            this.put("61", "陕西");    
            this.put("62", "甘肃");    
            this.put("63", "青海");    
            this.put("64", "宁夏");    
            this.put("65", "新疆");    
            this.put("71", "台湾");    
            this.put("81", "香港");    
            this.put("82", "澳门");    
            this.put("91", "国外");    
        }    
    };    
        
    private IdcardValidator validator = null;    
        
    /**  
     * 通过构造方法初始化各个成员属性  
     */    
    public IdcardInfoExtractor(String idcard) {    
        try {    
            validator = new IdcardValidator();    
            if (validator.isValidatedAllIdcard(idcard)) {    
                if (idcard.length() == 15) {    
                    idcard = validator.convertIdcarBy15bit(idcard);    
                }    
                // 获取省份    
                String provinceId = idcard.substring(0, 2);    
                Set<String> key = this.cityCodeMap.keySet();    
                for (String id : key) {    
                    if (id.equals(provinceId)) {    
                        this.province = this.cityCodeMap.get(id);    
                        break;    
                    }    
                }    
    
                // 获取性别    
                String id17 = idcard.substring(16, 17);    
                if (Integer.parseInt(id17) % 2 != 0) {    
                    this.gender = "男";    
                } else {    
                    this.gender = "女";    
                }    
    
                // 获取出生日期    
                String birthday = idcard.substring(6, 14);    
                Date birthdate = new SimpleDateFormat("yyyyMMdd")    
                        .parse(birthday);    
                this.birthday = birthdate;    
                GregorianCalendar currentDay = new GregorianCalendar();    
                currentDay.setTime(birthdate);    
                this.year = currentDay.get(Calendar.YEAR);    
                this.month = currentDay.get(Calendar.MONTH) + 1;    
                this.day = currentDay.get(Calendar.DAY_OF_MONTH);    
                  
                //获取年龄  
                SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy");  
                String year=simpleDateFormat.format(new Date());  
                this.age=Integer.parseInt(year)-this.year;  
                  
            }    
        } catch (Exception e) {    
            e.printStackTrace();    
        }    
    }    
    
    /**  
     * @return the province  
     */    
    public String getProvince() {    
        return province;    
    }    
    
    /**  
     * @return the city  
     */    
    public String getCity() {    
        return city;    
    }    
    
    /**  
     * @return the region  
     */    
    public String getRegion() {    
        return region;    
    }    
    
    /**  
     * @return the year  
     */    
    public int getYear() {    
        return year;    
    }    
    
    /**  
     * @return the month  
     */    
    public int getMonth() {    
        return month;    
    }    
    
    /**  
     * @return the day  
     */    
    public int getDay() {    
        return day;    
    }    
    
    /**  
     * @return the gender  
     */    
    public String getGender() {    
        return gender;    
    }    
    
    /**  
     * @return the birthday  
     */    
    public Date getBirthday() {    
        return birthday;    
    }    
    
    @Override    
    public String toString() {    
        return "省份:" + this.province + ",性别:" + this.gender + ",出生日期:"    
                + this.birthday;    
    }    
    
    public static void main(String[] args) {    
        String idcard = "";    
        IdcardInfoExtractor ie = new IdcardInfoExtractor(idcard);    
        System.out.println(ie.toString());    
    }  
  
    public int getAge() {  
        return age;  
    }  
  
    public void setAge(int age) {  
        this.age = age;  
    }    
      
}  

 

分享到:
评论

相关推荐

    PHP身份证号码归属地查询应用实例

    这个系统的核心功能是根据身份证号码查找出对应的省、市、区等信息,而无需依赖外部API,这提高了查询效率并降低了对外部服务的依赖。以下是该应用涉及的主要知识点: 1. **CSV文件处理**: - `card_address.csv` ...

    Java 身份证号查询

    这个"Java身份证号查询"项目提供了一个解决方案,允许我们通过身份证号码获取个人的出生地、年龄等关键信息。下面将详细阐述实现这一功能所涉及的Java知识点。 首先,中国的身份证号码是由18位数字组成的,前6位...

    身份证号码区域查询数据库 (mysql 格式)

    身份证号码是中国公民身份的主要标识,由18位数字组成,其中包含了出生日期、性别和地域等个人信息。在IT行业中,处理这些数据时,通常需要一个有效的数据库系统来存储和管理。"身份证号码区域查询数据库 (mysql ...

    身份证号码错位少位查询.rar

    4. "Data.mdb" - 这可能是一个Access数据库文件,用于存储身份证号码查询所需的数据,如身份证号码与个人信息的关联。 5. "Xmas2008Blue.skinres, SpringTime.skinres, Summer2008.skinres, Pumpkin.skinres, ...

    2012中国分省身份证号码前6位地区对照表.pdf

    在互联网实名制、手机卡实名制等政策实施过程中,通过核对身份证号码前6位,可以有效地对个人身份进行验证,确保网络安全和信息真实。同时,在涉及到国家秘密和关键信息基础设施的领域,对于身份证号码前6位地区的...

    js身份证号码获取性别、出生日期、籍贯省市.zip

    总之,通过JavaScript处理身份证号码,我们可以轻松获取个人的基本信息,这在许多Web应用中都有实际的应用场景,例如在线报名、用户注册等。正确理解和使用这个压缩包中的方法,能帮助开发者高效地实现相关功能。

    身份证号码数据详细列表

    地址码在身份证号码中占有非常重要的地位,它不仅能够帮助公安机关和相关机构快速定位到个人的户籍所在地,还对个人的身份认证、户籍管理、社会福利发放等方面具有重要意义。同时,地址码也是进行人口统计、地区规划...

    一个基于公民身份号码规则获取身份证号码中包含的基础信息组件PHP

    标题中的“一个基于公民身份号码规则获取身份证号码中包含的基础信息组件PHP”指的是一个使用PHP编程语言编写的软件组件,其主要功能是解析和提取中国公民身份证号码(ID卡号)中的个人信息。中国公民的身份证号码是...

    身份证.rar(根据身份证号码获取对应的性别,年龄,籍贯。亲测,真实可用。代码简洁,易懂。)

    在IT行业中,身份证号码是个人身份的重要标识,用于多种个人信息验证和管理。本文将深入探讨如何根据身份证号码获取对应的性别、年龄以及籍贯,这些信息对于开发涉及个人身份验证的应用程序至关重要。 首先,我们来...

    身份证号码合法性判断

    身份证号码作为个人身份的重要标识,在各类信息系统中扮演着至关重要的角色。为了确保系统中录入的身份证号码的有效性和准确性,进行身份证号码合法性判断是非常必要的。本文将根据附件二提供的内容,详细介绍如何...

    身份证号码归属地(需前六位)

    身份证号码是中国公民身份识别的重要组成部分,其结构设计严谨,包含了丰富的个人信息。身份证号码由18位数字组成,其中前六位数字代表的是地址码,即身份证号码归属地,表示持证人出生时所在的地区编码。这六位数字...

    C++中身份证号码验证代码

    在C++编程中,身份证号码验证是一个常见的任务,主要用于确保用户输入的身份信息是合法的。身份证号码是由18位数字组成,包含个人信息如出生日期、性别和地区编码等。本项目提供的`checkID.cpp`文件应该包含了实现这...

    电子表格版身份证信息查询

    在日常工作中,这种工具通常用于批量处理和管理个人身份信息,例如进行人员数据统计、会员管理或者客户服务等。EXCEL作为一款广泛使用的办公软件,其强大的数据处理能力和灵活的数据格式设置,使得身份证信息查询变...

    基于ASP的身份证号码查询解读.zip

    这个“基于ASP的身份证号码查询解读”项目可能是一个教学资源或者实际应用示例,旨在教用户如何利用ASP技术来处理和解析中国大陆居民的身份证号码,以实现身份验证或信息查询等功能。 身份证号码在中国是一个18位的...

    PHP读取身份证姓名和身份证号码API

    身份证号码是中国公民身份的唯一标识,通常包含18位数字,其中包含了出生日期、性别和地区的编码信息。姓名则为公民的个人名称。在处理这些信息时,我们需要遵循数据保护法规,确保数据的安全性和隐私性。 创建API...

    身份证号码对应地方区号表

    根据给定的信息,我们可以了解到这份文档主要介绍了身份证号码中各个位数所代表的含义以及如何通过身份证号码前几位数字来确定持有人所在的省级行政区。接下来,我们将详细解释这些内容。 ### 身份证号码结构解析 ...

    身份证号码归属地和手机号码归属地

    在中国,身份证号码和手机号码是个人身份的重要标识。身份证号码由18位数字组成,包含了出生日期、性别、发证地等信息,而手机号码则反映了用户与电信运营商的地域关联。这两个信息在日常生活和工作中都有广泛的应用...

    公民身份号码更正证明(式样)模板

    公民身份号码更正证明是一种官方文件,用于处理公民身份证号码出现重复或错误的情况。身份证号码是每个中国公民在国家数据库...完成更正后,公民的身份证号码变更信息将更新在国家数据库中,确保个人身份信息的准确性。

    JAVA验证身份证号码校验码是否正确.zip

    身份证号码是中国公民重要的个人身份标识,它包含了个人的出生日期和地区的编码信息,并且通过一个校验码来确保号码的准确性。在Java编程中,验证身份证号码的校验码是否正确是一项常见的任务,特别是在处理个人信息...

    身份证号码验证示例源码.rar

    身份证号码验证是IT行业中常见的需求,特别是在涉及到个人隐私和安全的系统中,如注册、登录、个人信息管理等。本示例源码提供了这样的功能,它可能是用C#编写的一个ASP.NET Web应用程序,因为文件列表中包含了`...

Global site tag (gtag.js) - Google Analytics