package org.springblade.common.constant; import java.util.Calendar; public class AgeUtil { /** * 根据身份证计算年龄 * * @param idcard * @return */ public static Integer idCardToAge(String idcard) { if (idcard.length() != 15 && idcard.length() != 18){ return null; } //身份证日期截取 Integer selectYear = Integer.valueOf(idcard.substring(6, 10)); //出生的年份 Integer selectMonth = Integer.valueOf(idcard.substring(10, 12)); //出生的月份 Integer selectDay = Integer.valueOf(idcard.substring(12, 14)); //出生的日期 //当前时间 Calendar cal = Calendar.getInstance(); Integer yearMinus = cal.get(Calendar.YEAR) - selectYear; Integer monthMinus = cal.get(Calendar.MONTH) + 1 - selectMonth; Integer dayMinus = cal.get(Calendar.DATE) - selectDay; Integer age = yearMinus; if (yearMinus < 0) { age = 0; } else if (yearMinus == 0) { age = 0; } else if (yearMinus > 0) { if (monthMinus == 0) { if (dayMinus < 0) { age = age - 1; } } else if (monthMinus > 0) { age = age + 1; } } return age; } }