当前位置: 代码迷 >> 综合 >> 身份证号获取年龄 (几岁 或者 几个月 或者几天 )
  详细解决方案

身份证号获取年龄 (几岁 或者 几个月 或者几天 )

热度:37   发布时间:2023-09-05 17:44:59.0

@SuppressWarnings("deprecation")
public String getAge(String idcard){
if(StringUtils.isNotBlank(idcard)){
String y=idcard.substring(6,10);
String m=idcard.substring(10,12);
String d=idcard.substring(12,14);
Date birthday = new Date(y+"/"+m+"/"+d);
Calendar now = Calendar.getInstance();
Calendar b = Calendar.getInstance();
b.setTime(birthday);
int year = now.get(Calendar.YEAR) - b.get(Calendar.YEAR);
int month = now.get(Calendar.MONTH) - b.get(Calendar.MONTH);
int day = now.get(Calendar.DAY_OF_MONTH) - b.get(Calendar.DAY_OF_MONTH);
if (month < 0) {
month = 12 - b.get(Calendar.MONTH) + now.get(Calendar.MONTH);
year -= 1;
}
if (day < 0) {
day = b.getMaximum(Calendar.DAY_OF_MONTH) - b.get(Calendar.DAY_OF_MONTH) + now.get(Calendar.DAY_OF_MONTH);
month -= 1;
}
if(year>0){
return  year + "岁";
}else if(year==0&&month>0){
return  month + "月";
}else if(year==0&&month==0&&day>0){
return  day + "天";
}
}
return null;
}