我刚刚开始使用java,我正在制作一个程序,根据年龄和性别确定一个人的租车费率.此方法根据当前日期和出生日期计算人的年龄.它有点工作,但是边缘情况有问题(例如,有时它会说你24岁时你才25岁).如何修复它以使其返回确切的年龄而不是说它有时会比你大1岁?(请不要Joda,我不能在这个作业中使用它)
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;
}
Run Code Online (Sandbox Code Playgroud)
如果你可以使用Java 8,它比joda好多了:
LocalDate birthday = LocalDate.of(1982, 01, 29);
long yearsDelta = birthday.until(LocalDate.now(), ChronoUnit.YEARS);
System.out.println("yearsDelta = " + yearsDelta);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12851 次 |
| 最近记录: |