我目前正在创建一个程序,需要我创建一个方法,将现有对象日期属性的日期添加+ 1。问题是我不完全确定我如何修改它的值,我已经尝试过day = day + 1,this.day + 1等等。
所以我们假设一个对象date1等于1/1/1970,我运行了date1.tomorrow();它会修改它并使其成为2/1/1970。
编辑:我没有使用java.util.Date,我创建了一个名为Date的构造函数,其中包含3个字段。答案 0 :(得分:3)
您不能通过向其添加整数1来直接修改Date
对象。这是因为它们属于不同类型。我建议使用Calendar
对象;它有一个名为Calendar#add(int field, int amount
的方法。这将做你想做的事。
编辑:我有更详细的说明,但由于这个问题听起来像是家庭作业,我只是给你留下上面的提示。无论如何,它应该足以让你指出正确的方向。
答案 1 :(得分:1)
试试这个:
Calendar c = Calendar.getInstance();
c.setTime(yourDate);
c.add(Calendar.DATE, 1);
yourDate = c.getTime();
修改强>
所以让我们假设一个对象date1等于1/1/1970并且我跑了 date1.tomorrow();它会修改它并使其成为2/1/1970。
如果您的日期对象(比如说dt
)是java.util.Date,除非您扩展dt.tomorrow()
,否则无法执行util.Date
,您可以创建一个util类/方法。 e.g:
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);
答案 2 :(得分: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
个实例的日期和月份。