根据身份证号获取年龄
/**
* 根据身份编号获取年龄
*
* @param idCard 身份编号
* @return 年龄
*/
public static int getAgeByIdCard(String idCard) {
int iAge = 0;
Calendar cal = Calendar.getInstance();
String year = idCard.substring(6, 10);
int iCurrYear = cal.get(Calendar.YEAR);
iAge = iCurrYear - Integer.valueOf(year);
return iAge;
}
根据身份编号获取生日
/**
* 根据身份编号获取生日
*
* @param idCard 身份编号
* @return 生日(yyyyMMdd)
*/
public static String getBirthByIdCard(String idCard) {
return idCard.substring(6, 14);
}
根据身份编号获取生日年
/**
* 根据身份编号获取生日年
*
* @param idCard 身份编号
* @return 生日(yyyy)
*/
public static Short getYearByIdCard(String idCard) {
return Short.valueOf(idCard.substring(6, 10));
}
根据身份编号获取生日月
/**
* 根据身份编号获取生日月
*
* @param idCard 身份编号
* @return 生日(MM)
*/
public static Short getMonthByIdCard(String idCard) {
return Short.valueOf(idCard.substring(10, 12));
}
根据身份编号获取生日天
public static Short getDateByIdCard(String idCard) {
return Short.valueOf(idCard.substring(12, 14));
}
根据身份编号获取性别
/**
* 根据身份编号获取性别
*
* @param idCard 身份编号
* @return 性别(M - 男 , F - 女 , N - 未知)
*/
public static String getGenderByIdCard(String idCard) {
String sGender = "未知";
String sCardNum = idCard.substring(16, 17);
if (Integer.parseInt(sCardNum) % 2 != 0) {
sGender = "0";//男 1
} else {
sGender = "1";//女 2
}
return sGender;
}
获取生日
/**
* 获取生日
*
* @param idCard
* @return
*/
public static String getBirthdayByIdCard(String idCard) {
Short nian = getYearByIdCard(idCard);
Short yue = getMonthByIdCard(idCard);
Short ri = getDateByIdCard(idCard);
String birthDay = nian + "-" + yue + "-" + ri;
return birthDay;
}
身份证类型对应证件
/**
* 身份证类型对应的证件名称映射工具(数据库中没有对应的字典表所以执行以下操作)
* 具体看跟前端怎么商量着来,如果前端来判断的话,用户体验可能不太好
* 后端可以直接在服务期操作,服务器的执行速度要比客户端快
* @author
* @date
* @return 将返回证件类型对应的证件名称
* @param idCardType 这个参数是一个数字,字符串格式的数字
*/
public static String getIdCardName(String idCardType) {
String birthDay = "";
switch (idCardType) {
case "0":
birthDay = "居民身份证";
break;
case "1":
birthDay = "护照";
break;
case "2":
birthDay = "军官证";
break;
case "3":
birthDay = "驾照";
break;
case "4":
birthDay = "户口本";
break;
case "5":
birthDay = "学生证";
break;
case "6":
birthDay = "工作证";
break;
case "10":
birthDay = "中国护照";
break;
case "11":
birthDay = "外国护照";
break;
case "12":
birthDay = "警官证";
break;
case "13":
birthDay = "香港居民身份证";
break;
case "14":
birthDay = "澳门居民身份证";
break;
case "15":
birthDay = "台湾居民身份证";
break;
case "16":
birthDay = "外国身份证";
break;
case "17":
birthDay = "台湾居民往来大陆通行证";
break;
case "18":
birthDay = "重号居民身份证";
break;
case "19":
birthDay = "临时居民身份证";
break;
case "20":
birthDay = "港澳居民往来内地通行证";
break;
case "21":
birthDay = "军人身份证件";
break;
case "22":
birthDay = "武警身份证件";
break;
case "23":
birthDay = "外国人居留证";
break;
case "24":
birthDay = "异常身份证";
break;
case "25":
birthDay = "出生医学证明";
break;
case "26":
birthDay = "外国人永久居留身份证";
break;
case "96":
birthDay = "港澳居民居住证";
break;
case "98":
birthDay = "台湾居民居住证";
break;
default:
birthDay = "其他证件";
break;
}
return birthDay;
}