我刚开始使用Java,并且正在制作一个程序,该程序可以根据年龄和性别确定一个人的租车率。该方法根据当前日期和出生日期计算该人的年龄。这种方法行之有效,但边界案例存在问题(例如,有时您24岁时会说您25岁)。我该如何解决它,使其返回准确的年龄,而不是说您有时大一岁?(请不要乔达,我不能在本作业中使用它)
public static int calcAge(int curMonth, int curDay, int curYear,int birthMonth,int birthDay,int birthYear) {
int yearDif = curYear - birthYear;
int age = 08;
if(curMonth < birthMonth) {
age = yearDif - 1;
}
if(curMonth == birthMonth) {
if(curDay < birthDay) {
age = yearDif - 1;
}
if(curDay > birthDay) {
age = yearDif;
}
}
if(curMonth > birthMonth) {
age = yearDif;
}
return age;
}
如果您可以使用Java 8,它将比joda更好:
LocalDate birthday = LocalDate.of(1982, 01, 29);
long yearsDelta = birthday.until(LocalDate.now(), ChronoUnit.YEARS);
System.out.println("yearsDelta = " + yearsDelta);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句