我目前正在制作一个程序,该程序需要我制作一个方法,将 + 1 添加到现有对象日期属性的日期。问题是我不完全确定如何修改它的值,我尝试过 day = day + 1、this.day + 1 等。
所以让我们假设一个对象 date1 等于 1/1/1970 并且我运行 date1.tomorrow(); 它将对其进行修改并使其成为 1970 年 2 月 1 日。
编辑:我没有使用 java.util.Date,我创建了一个名为 Date 的构造函数,其中包含 3 个字段。
我目前正在制作一个程序,该程序需要我制作一个方法,将 + 1 添加到现有对象日期属性的日期。问题是我不完全确定如何修改它的值,我尝试过 day = day + 1、this.day + 1 等。
所以让我们假设一个对象 date1 等于 1/1/1970 并且我运行 date1.tomorrow(); 它将对其进行修改并使其成为 1970 年 2 月 1 日。
编辑:我没有使用 java.util.Date,我创建了一个名为 Date 的构造函数,其中包含 3 个字段。
您不能通过Date
将整数 1 添加到对象来直接修改对象。这是因为它们属于不同的类型。我建议使用该Calendar
对象;它有一个名为Calendar#add(int field, int amount
. 这将做你想做的事。
编辑:我有更详细的说明,但由于这个问题听起来像家庭作业,我只是给你上面的提示。无论如何,这应该足以为您指明正确的方向。
尝试这个:
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);
如果您正在处理对这些对象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
。