修改对象属性

时间:2013-03-04 16:03:02

标签: java oop class methods attributes

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

所以我们假设一个对象date1等于1/1/1970,我运行了date1.tomorrow();它会修改它并使其成为2/1/1970。

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

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个实例的日期和月份。