-1

我目前正在制作一个程序,该程序需要我制作一个方法,将 + 1 添加到现有对象日期属性的日期。问题是我不完全确定如何修改它的值,我尝试过 day = day + 1、this.day + 1 等。

所以让我们假设一个对象 date1 等于 1/1/1970 并且我运行 date1.tomorrow(); 它将对其进行修改并使其成为 1970 年 2 月 1 日。

编辑:我没有使用 java.util.Date,我创建了一个名为 Date 的构造函数,其中包含 3 个字段。

4

3 回答 3

3

您不能通过Date将整数 1 添加到对象来直接修改对象。这是因为它们属于不同的类型。我建议使用该Calendar对象;它有一个名为Calendar#add(int field, int amount. 这将做你想做的事。

编辑:我有更详细的说明,但由于这个问题听起来像家庭作业,我只是给你上面的提示。无论如何,这应该足以为您指明正确的方向。

于 2013-03-04T16:05:34.673 回答
1

尝试这个:

Calendar c = Calendar.getInstance(); 
c.setTime(yourDate); 
c.add(Calendar.DATE, 1);
yourDate = c.getTime();

编辑

所以让我们假设一个对象 date1 等于 1/1/1970 并且我运行 date1.tomorrow(); 它将对其进行修改并使其成为 1970 年 2 月 1 日。

如果您的日期对象(例如dt)是 java.util.Date,则dt.tomorrow()除非您扩展util.Date您可以创建一个实用程序类/方法,否则您将无法做到这一点。例如:

class Foo {
....

public static Date tomorrow(java.util.Date yourDate){
Calendar c = Calendar.getInstance(); 
    c.setTime(yourDate); 
    c.add(Calendar.DATE, 1);
    return c.getTime();
}

然后调用它:

dt = Foo.tomorrow(dt);
于 2013-03-04T16:06:19.400 回答
0

如果您正在处理对这些对象java.util.Date使用+运算符的对象是无效的。

更重要的是,即使+运营商是合法的,使用它也没有任何意义 -date + 1应该添加1到日期或月份或年份..?

操作java.util.Date类的对象Calendar提供了几种实用方法。您可以在这里使用的其中之一是Calendar.add.

根据日历的规则,在给定的日历字段中添加或减去指定的时间量。例如,要从日历的当前时间减去 5 天,可以通过调用实现:

add(Calendar.DAY_OF_MONTH, -5)

编辑:

从您的编辑中可以看出您没有使用java.util.Date对象。现在您的Date对象维护了三个属性(最有可能是日期、月份和年份),您应该能够在这些字段上应用算术运算符。

但是,在操作这些字段时,您应该小心遵循与日期相关的规则(假设它们属于整数类型之一)。

例如,添加1日期28/02/2013应该更新实例的日期和月份Date

于 2013-03-04T16:14:51.333 回答