Java DOB和当前日期之间的LocalDate时间段使用getYear()返回为0
我试图以我用LocalDate DOB构建的对象(俱乐部成员)的年数来获取年龄,但年龄一直返回为0 我有一种方法,可以计算对象的出生日期和今天之间的时间段,然后使用getYears方法将其更改为一个我可以比较的长时间段 成员类中的代码:Java DOB和当前日期之间的LocalDate时间段使用getYear()返回为0,java,Java,我试图以我用LocalDate DOB构建的对象(俱乐部成员)的年数来获取年龄,但年龄一直返回为0 我有一种方法,可以计算对象的出生日期和今天之间的时间段,然后使用getYears方法将其更改为一个我可以比较的长时间段 成员类中的代码: //Methods to work out age from DOB } public void setYearsAge(long years) { Period age = Period.between(this.getDateOfBirth(), t
//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;
}
今天的
是如何定义的?你确定years=age.getYears()代码>设置正确变量的值?你能带我们看一下全班吗?我真的不明白为什么要使用void
方法来获取参数,然后重新定义参数值…不要使用=
比较字符串。看。