java根据身份证算年龄
时间: 2023-06-26 11:03:58 浏览: 50
可以通过以下代码实现根据身份证号计算年龄的功能:
```
public static int getAge(String idCard) {
Calendar cal = Calendar.getInstance();
int yearNow = cal.get(Calendar.YEAR);
int monthNow = cal.get(Calendar.MONTH) + 1;
int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);
int yearBirth, monthBirth, dayOfMonthBirth;
if (idCard.length() == 18) {
yearBirth = Integer.parseInt(idCard.substring(6, 10));
monthBirth = Integer.parseInt(idCard.substring(10, 12));
dayOfMonthBirth = Integer.parseInt(idCard.substring(12, 14));
} else if (idCard.length() == 15) {
yearBirth = Integer.parseInt(idCard.substring(6, 8)) + 1900;
monthBirth = Integer.parseInt(idCard.substring(8, 10));
dayOfMonthBirth = Integer.parseInt(idCard.substring(10, 12));
} else {
return 0;
}
int age = yearNow - yearBirth;
if (monthNow < monthBirth || (monthNow == monthBirth && dayOfMonthNow < dayOfMonthBirth)) {
age--;
}
return age;
}
```
其中,idCard为待计算年龄的身份证号码,返回值为计算出来的年龄。注意,该方法仅仅是根据身份证号码计算出年龄,而不考虑其他因素,如生日是否正确等。