JAVA中跟据身份证信息判断一个人的出生年月、性别、所属地区等
时间: 2024-06-12 18:06:13 浏览: 113
excel常用函数公式及技巧搜集
信息可以通过以下步骤实现:
1. 根据身份证号码获取出生年月日信息。身份证号码中前六位为地区代码,接下来8位为出生年月日信息,格式为YYYYMMDD。可以使用字符串截取的方式获取出生年月日信息,然后进行日期格式化,转换为Date类型。
2. 通过出生年月日信息计算出该人的年龄。
3. 根据身份证号码中的倒数第二位,判断性别。奇数为男性,偶数为女性。
4. 根据身份证号码中的地区代码,查询对应的地区信息。可以使用一个包含所有地区代码和对应地区名称的表格,根据身份证号码中的地区代码进行匹配,获取对应的地区名称。
代码示例:
```java
public class IdCardUtil {
// 身份证号码中的地区代码和对应地区名称表格,可自行完善
private static final Map<String, String> areaCodeMap = new HashMap<String, String>() {{
put("110000", "北京市");
put("120000", "天津市");
put("130000", "河北省");
// ...
}};
/**
* 根据身份证号码获取出生年月日信息
*
* @param idCard 身份证号码
* @return 出生年月日信息
*/
public static Date getBirthDate(String idCard) {
String birthday = idCard.substring(6, 14);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
try {
return sdf.parse(birthday);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
/**
* 根据身份证号码计算年龄
*
* @param idCard 身份证号码
* @return 年龄
*/
public static int getAge(String idCard) {
Calendar cal = Calendar.getInstance();
int currentYear = cal.get(Calendar.YEAR);
int birthYear = getBirthDate(idCard).getYear() + 1900;
return currentYear - birthYear;
}
/**
* 根据身份证号码判断性别
*
* @param idCard 身份证号码
* @return 性别,1为男性,2为女性
*/
public static int getGender(String idCard) {
int genderCode = Integer.parseInt(idCard.substring(16, 17));
return genderCode % 2 == 1 ? 1 : 2;
}
/**
* 根据身份证号码获取地区信息
*
* @param idCard 身份证号码
* @return 地区信息
*/
public static String getArea(String idCard) {
String areaCode = idCard.substring(0, 6);
return areaCodeMap.get(areaCode);
}
}
```
阅读全文