public static int getAgeByCertId(String cardId) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String nowDate = sdf.format(new Date());
if (cardId.length() == 18) {
int cardYear = Integer.parseInt(cardId.substring(6, 10));
int nowYear = Integer.parseInt(nowDate.substring(0, 4));
if (cardYear < nowYear) {
String cardMonth = cardId.substring(10, 14);
String nowMonth = nowDate.substring(4, 8);
int cardDay = Integer.parseInt(cardMonth.substring(0, 4));
int nowDay = Integer.parseInt(nowMonth.substring(0, 4));
int yearNumber = nowYear - cardYear;
if (cardDay > nowDay) {
yearNumber--;
}
return yearNumber;
} else {
return 0;
}
} else {
return 0;
}
}
计算周岁,不到一年算0岁 一年一个月算一岁 只能计算18位身份证号