First example: birthdate :10-01-1991(ddmmyyyy)
CurrentDate :10-01-2017
Run Code Online (Sandbox Code Playgroud)
如果上面是条件,那么我想打印26作为当前年龄.第二个例子:生日:25-07-1991(ddmmyyyy)
CurrentDate:10-01-2017 如果上面是条件那么我想打印25作为当前年龄.
请帮我 ....!!!!!!
以下是我尝试过的代码.
private int calculateage(Integer day1, Integer month1, Integer year1)
{
Calendar birthCal = new GregorianCalendar(1991, 01, 10);
Calendar nowCal = new GregorianCalendar();
age = nowCal.get(Calendar.YEAR) - birthCal.get(Calendar.YEAR);
boolean isMonthGreater = birthCal.get(Calendar.MONTH) >= nowCal
.get(Calendar.MONTH);
boolean isMonthSameButDayGreater = birthCal.get(Calendar.MONTH) >= nowCal.get(Calendar.MONTH)
&& birthCal.get(Calendar.DAY_OF_MONTH) >= nowCal
.get(Calendar.DAY_OF_MONTH);
if (age < 18) {
Age = age;
}
else if (isMonthGreater || isMonthSameButDayGreater) {
Age = age - 1;
}
return Age;
Run Code Online (Sandbox Code Playgroud)
}
与乔达图书馆:
LocalDate birthdate = new LocalDate (1970, 1, 20);
LocalDate now = new LocalDate();
Years age = Years.yearsBetween(birthdate, now);
Run Code Online (Sandbox Code Playgroud)
没有图书馆:
public static int getAge(String date) {
int age = 0;
try {
Date date1 = dateFormat.parse(date);
Calendar now = Calendar.getInstance();
Calendar dob = Calendar.getInstance();
dob.setTime(date1);
if (dob.after(now)) {
throw new IllegalArgumentException("Can't be born in the future");
}
int year1 = now.get(Calendar.YEAR);
int year2 = dob.get(Calendar.YEAR);
age = year1 - year2;
int month1 = now.get(Calendar.MONTH);
int month2 = dob.get(Calendar.MONTH);
if (month2 > month1) {
age--;
} else if (month1 == month2) {
int day1 = now.get(Calendar.DAY_OF_MONTH);
int day2 = dob.get(Calendar.DAY_OF_MONTH);
if (day2 > day1) {
age--;
}
}
} catch (ParseException e) {
e.printStackTrace();
}
return age ;
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
23680 次 |
| 最近记录: |