import java.util.Calendar;
public class IdCardUtil {
/**
* 根据身份编号获取年龄
* @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));
}
/**
* 根据身份编号获取生日天
* @param idCard 身份编号
* @return 生日(dd)
*/
public static Short getDateByIdCard(String idCard) {
return Short.valueOf(idCard.substring(12, 14));
}
/**
* 根据身份编号获取性别
* @param idCard 身份编号
* @return 性别(M-男,F-女,N-未知 1男 2女)
*/
public static String getGenderByIdCard(String idCard) {
String gender = "未知";
String cardNum = idCard.substring(16, 17);
gender = Integer.parseInt(cardNum) % 2 != 0 ? "1" : "2";
return gender;
}
public static void main(String [] a){
String idcard=""; // 身份证号码
String sex = getGenderByIdCard(idcard) == "1" ? "男" : "女";
System.out.println("性别:" + sex);
int age= getAgeByIdCard(idcard);
System.out.println("年龄:" + age);
Short nian=getYearByIdCard(idcard);
Short yue=getMonthByIdCard(idcard);
Short ri=getDateByIdCard(idcard);
System.out.print(nian+"年"+yue+"月"+ri+"日");
String sr=getBirthByIdCard(idcard);
System.out.println("-生日:" + sr);
}
}