Java 正在尝试将GregorianCalendar变量=设置为另一个GregorianCalendar变量+;4年

Java 正在尝试将GregorianCalendar变量=设置为另一个GregorianCalendar变量+;4年,java,date,datetime,calendar,gregorian-calendar,Java,Date,Datetime,Calendar,Gregorian Calendar,通过将一个GregorianCalendar的值设置为另一个值+4年,我有了很大的进步。我看到类中有add方法,但它接受int,我试图传递一个gregoriacalendar类型 public GregorianCalendar getEnrollmentDate(GregorianCalendar enrollmentDate){ return enrollmentDate; } public void setProjectedGraduationDate(GregorianCalen

通过将一个GregorianCalendar的值设置为另一个值+4年,我有了很大的进步。我看到类中有add方法,但它接受int,我试图传递一个gregoriacalendar类型

public GregorianCalendar getEnrollmentDate(GregorianCalendar enrollmentDate){
    return enrollmentDate;
}
public void setProjectedGraduationDate(GregorianCalendar projectedGraduationDate){
    Calendar cal = new GregorianCalendar();
    cal.setTime(this.enrollmentDate);
    projectedGraduationDate = cal.add(Calendar.YEAR, 4);
}
我尝试添加年份的值是“enrollmentDate”


这是否可能,“setTime”方法接受“Date”时间,而不是GregorianCalendar。

只需执行即可从
GregorianCalendar

中获取
Date
实例
类的
add
方法无效,因此无法将调用分配给变量

如果您打算修改传递给方法的
gregoriacalendar
对象,那么您需要编写

projectedGraduationDate.add(calendar.YEAR,4);

但这需要先将
projectedGraduationDate
设置为正确的值。

您不应该将参数重新分配到您的函数中。当您从未引用输入参数时,如何向输入参数中添加一些内容???日期将来自用户输入,然后我将在此基础上再添加4年。getTime()不能获取当前时间吗?不一定是用户正确输入的内容?这基本上就是我使用public void setProjectedGraduationDate(Gregorianalendar projectedGraduationDate){projectedGraduationDate.add(Calendar.YEAR,4);This.projectedGraduationDate=projectedGraduationDate;}@programmerNOOB-使用与局部变量/参数和实例字段名相同的变量名是不明智的。
public setProjectedGraduationDate(GregorianCalendar projectedGraduationDate){
    projectedGraduationDate.setTime(this.enrollmentDate);
    projectedGraduationDate.add(Calendar.YEAR, 4);
}