首先需要判断是否是身份证号--此步骤略:提示正则
工具类重点:
private String idNum;//身份证号码
private int getOld() {
SimpleDateFormat yearFormatter = new SimpleDateFormat("yyyy");
SimpleDateFormat monthFormatter = new SimpleDateFormat("MMdd");
Date curDate = new Date(System.currentTimeMillis());
String yearDate = yearFormatter.format(curDate);
int dateInt = Integer.parseInt(yearDate);
String monthDate = monthFormatter.format(curDate);
int monthInt = Integer.parseInt(monthDate);
Log.i("informationActivity", "dateInt" + dateInt + "monthInt"
+ monthInt);
if (idNum.length() == 15) {
String yearidDate = "19"+idNum.substring(6, 8);
int yearidInt = Integer.parseInt(yearidDate);
String monthidDate = idNum.substring(8, 12);
int monthidInt = Integer.parseInt(monthidDate);
Log.i("informationActivity", "yearidInt" + yearidInt + "monthidInt"
+ monthidInt);
if (monthInt >= monthidInt) {
return dateInt - yearidInt;
} else {
return dateInt - yearidInt - 1;
}
} else {
String yearidDate = idNum.substring(6, 10);
int yearidInt = Integer.parseInt(yearidDate);
String monthidDate = idNum.substring(10, 14);
int monthidInt = Integer.parseInt(monthidDate);
Log.i("informationActivity", "yearidInt" + yearidInt + "monthidInt"
+ monthidInt);
if (monthInt >= monthidInt) {
return dateInt - yearidInt;
} else {
return dateInt - yearidInt - 1;
}
}
}