原文链接:https://blog.csdn.net/shaofan1/article/details/97106996
在原文上做了改动
package practice;
import java.text.SimpleDateFormat;
import java.util.Date;
public class IDCard {
public static int getAgeByCertId(String cardId) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String nowDate = sdf.format(new Date());
int yearNumber=0;
if (cardId.length() == 18) {
int cardYear = Integer.parseInt(cardId.substring(6, 10));
int nowYear = Integer.parseInt(nowDate.substring(0, 4));
System.out.println("cardYear :"+cardYear);
System.out.println("nowYear :"+nowYear);
if (cardYear < nowYear) {
String cardMonth = cardId.substring(10, 14);
String nowMonth = nowDate.substring(4, 8);
System.out.println("cardMonth :"+cardMonth);
System.out.println("nowMonth :"+nowMonth);
int cardDay = Integer.parseInt(cardMonth.substring(0, 4));
int nowDay = Integer.parseInt(nowMonth.substring(0, 4));
System.out.println("cardDay :"+cardDay);
System.out.println("nowDay :"+nowDay);
yearNumber=nowYear - cardYear;;
if(Integer.parseInt(cardMonth)>Integer.parseInt(nowMonth)){
yearNumber = yearNumber;
}else{
yearNumber--;
}
if(Integer.parseInt(cardMonth)==Integer.parseInt(nowMonth)){
if (cardDay >=nowDay) {
yearNumber = yearNumber;
}else{
yearNumber--;
}
return yearNumber;
}
} else {
return 0;
}
}
return yearNumber;
}
public static void main(String[] args) {
int ageByCertId = getAgeByCertId("450802199906204319");
System.out.println(ageByCertId);
}
}