Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DOB和当前日期之间的LocalDate时间段使用getYear()返回为0_Java - Fatal编程技术网

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

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

我试图以我用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;
}

今天的
是如何定义的?你确定
years=age.getYears()设置正确变量的值?你能带我们看一下全班吗?我真的不明白为什么要使用
void
方法来获取参数,然后重新定义参数值…不要使用
=
比较字符串。看。