由出生日期获得年龄
package com.***.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class AgeUtil {
public static Date parse(String strDate) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.parse(strDate);
}
// 由出生日期获得年龄
public static int getAge(Date birthDay) {
Calendar today = Calendar.getInstance();
Calendar cal = Calendar.getInstance();
cal.setTime(birthDay);
if (today.before(cal)) {
throw new IllegalArgumentException("The birthDay is before Now. It's unbelievable!");
}
int yearNow = today.get(Calendar.YEAR);
int monthNow = today.get(Calendar.MONTH);
int dayOfMonthNow = today.get(Calendar.DAY_OF_MONTH);
int yearBirth = cal.get(Calendar.YEAR);
int monthBirth = cal.get(Calendar.MONTH);
int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
int age = yearNow - yearBirth;
if (monthNow <= monthBirth) {
if (monthNow == monthBirth) {
if (dayOfMonthNow < dayOfMonthBirth)
age--;
} else {
age--;
}
}
return age;
}
public static void main(String args[]) {
try {
int age = getAge(parse("2019-01-17"));
System.out.println("age==" + age);
} catch (ParseException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}