【问题标题】:Trying to set a GregorianCalendar variable = to another GregroianCalendar variable + 4 years试图设置一个 GregorianCalendar 变量 = 另一个 GregroianCalendar 变量 + 4 年
【发布时间】:2014-03-24 20:07:05
【问题描述】:

我正在将 GregorianCalendar 的值设置为另一个 + 4 年的值。我看到类中有 add 方法,但它接受一个 int 并且我正在尝试传递一个 GregorianCalendar 类型。

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”方法接受“日期”时间,但不是 GregorianCalendar。

【问题讨论】:

  • 你应该将参数重新分配到你的函数中
  • 当你从不引用输入参数时,你如何添加一些东西???

标签: java date datetime calendar gregorian-calendar


【解决方案1】:

只需执行getTime() 即可将Date 实例从GregorianCalendar 中取出

【讨论】:

  • 日期将来自用户输入,然后我将添加 4 年。 getTime() 不会得到当前时间吗?不一定是用户会输入的内容吗?
【解决方案2】:
public setProjectedGraduationDate(GregorianCalendar projectedGraduationDate){
    projectedGraduationDate.setTime(this.enrollmentDate);
    projectedGraduationDate.add(Calendar.YEAR, 4);
}

【讨论】:

  • 这基本上就是我最终得到的 public void setProjectedGraduationDate(GregorianCalendar projectionGraduationDate){ projectionGraduationDate.add(Calendar.YEAR, 4); this.projectedGraduationDate = 预计毕业日期; }
  • @programmerNOOB - 使用相同的变量名作为局部变量/参数和实例字段名是不明智的。
【解决方案3】:

GregorianCalendar 类的add 方法是无效的,因此不能将调用分配给变量。

如果您的意图是修改您传递给您的方法的 GregorianCalendar 对象,那么您需要编写

projectedGraduationDate.add(calendar.YEAR,4);

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

【讨论】:

    猜你喜欢
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多