public class Test {
public static int getAge(Date dateOfBirth) {
int age = 0;
Calendar born = Calendar.getInstance();
Calendar now = Calendar.getInstance();
if (dateOfBirth != null) {
now.setTime(new Date());
born.setTime(dateOfBirth);
if (born.after(now)) {
throw new IllegalArgumentException("年龄不能超过当前日期");
}
age = now.get(Calendar.YEAR) - born.get(Calendar.YEAR);
int nowDayOfYear = now.get(Calendar.DAY_OF_YEAR);
int bornDayOfYear = born.get(Calendar.DAY_OF_YEAR);
System.out.println("nowDayOfYear:" + nowDayOfYear + " bornDayOfYear:" + bornDayOfYear);
if (nowDayOfYear < bornDayOfYear) {
age -= 1;
}
}
return age;
}
public static void main(String[] args) throws Exception {
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date mydate = myFormatter.parse("1977-04-29");
System.out.println(getAge(mydate));
}
}
public static int getAge(Date dateOfBirth) {
int age = 0;
Calendar born = Calendar.getInstance();
Calendar now = Calendar.getInstance();
if (dateOfBirth != null) {
now.setTime(new Date());
born.setTime(dateOfBirth);
if (born.after(now)) {
throw new IllegalArgumentException("年龄不能超过当前日期");
}
age = now.get(Calendar.YEAR) - born.get(Calendar.YEAR);
int nowDayOfYear = now.get(Calendar.DAY_OF_YEAR);
int bornDayOfYear = born.get(Calendar.DAY_OF_YEAR);
System.out.println("nowDayOfYear:" + nowDayOfYear + " bornDayOfYear:" + bornDayOfYear);
if (nowDayOfYear < bornDayOfYear) {
age -= 1;
}
}
return age;
}
public static void main(String[] args) throws Exception {
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date mydate = myFormatter.parse("1977-04-29");
System.out.println(getAge(mydate));
}
}