繁体   English   中英

LocalDate 时间 DOB 和当前日期之间的时间段使用 getYear() 作为时间段返回为 0

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM