[英]LocalDate time Period between DOB and current date returns as 0 using getYear() for the time period
我试图以我用 LocalDate DOB 构建的对象(俱乐部成员)的年数计算年龄,但年龄一直返回为 0。
我有一个方法可以计算对象的出生日期和今天之间的时间段,然后我使用 getYears 方法将其更改为我可以比较的时间。
成员类中的代码:
//Methods to work out age from DOB
}
public void setYearsAge(long years) {
Period age = Period.between(this.getDateOfBirth(), today);
years = age.getYears();
this.years = years;
}
public long getYearsAge() {
return years;
}
//method called from main
String memberInfoMaleOver() {
if(gender.contains("Male") && getYearsAge() > 17) {
return firstName;
}
else
return "Invalid";
}
从主调用:
//ma = user input from earlier
do {
System.out.println(maleMember[j].memberInfoMaleOver());
if (maleMember[j].memberInfoMaleOver()=="No more Male team members")
break;
else
j++;
} while (j != ma);
做以下更改
private void updateAge(){
Period age = Period.between(this.getDateOfBirth(), today);
this.years = age.getYears();
}
public void setYearsAge(long years) {
updateAge();
}
public long getYearsAge() {
if(this.years ==0 )
{
updateAge();
}
return this.years;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.