2014-03-24 52 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以正確的價值。

相關問題