2014-03-24 51 views
0

我正在通过将GregorianCalendar的值设置为另一个+ 4年的值。我看到类中的add方法,但它接受一个int,我试图传递一个GregorianCalendar类型。试图设置GregorianCalendar变量=为另一个GregroianCalendar变量+ 4年

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”

这是可能的,在“时刻设定”方法接受一个“日”时间,不是的GregorianCalendar虽然。

+1

您应该**不**将参数重新分配到您的函数 – 2014-03-24 20:09:13

+0

如何在从不参考的情况下向输入参数中添加内容? –

回答

0
public setProjectedGraduationDate(GregorianCalendar projectedGraduationDate){ 
    projectedGraduationDate.setTime(this.enrollmentDate); 
    projectedGraduationDate.add(Calendar.YEAR, 4); 
} 
+0

这基本上是我最后用public void setProjectedGraduationDate(GregorianCalendar projectedGraduationDate){ projectedGraduationDate.add(Calendar.YEAR,4); this.projectedGraduationDate = projectedGraduationDate; } – programmerNOOB

+0

@programmerNOOB - 使用与局部变量/参数和实例字段名称相同的变量名是不明智的。 –

1

只是执行getTime()得到Date实例出来的GregorianCalendar

+0

日期将来自用户输入,然后我将添加4年。不会getTime()获取当前时间?不一定是用户输入的权利? – programmerNOOB

0

GregorianCalendar类的add方法是无效的,所以你不能给它分配一个电话给一个变量。

如果你的目的是要修改GregorianCalendar对象,你传递到您的方法,那么你会想要写

projectedGraduationDate.add(calendar.YEAR,4); 

但这需要首先设置projectedGraduationDate以正确的价值。

相关问题