Java 修改对象属性
我目前正在制作一个程序,需要我制作一个方法,将+1添加到现有对象日期属性的日期。问题是我不完全确定如何修改它的值,我尝试了day=day+1,this.day+1,等等 让我们假设一个对象date1等于1/1/1970,我运行了date1.tomory();它将修改它,使之成为1970年2月1日Java 修改对象属性,java,oop,class,methods,attributes,Java,Oop,Class,Methods,Attributes,我目前正在制作一个程序,需要我制作一个方法,将+1添加到现有对象日期属性的日期。问题是我不完全确定如何修改它的值,我尝试了day=day+1,this.day+1,等等 让我们假设一个对象date1等于1/1/1970,我运行了date1.tomory();它将修改它,使之成为1970年2月1日 编辑:我没有使用java.util.Date,我创建了一个名为Date的构造函数,其中包含3个字段。您不能通过将整数1添加到对象中来直接修改Date对象。这是因为它们的类型不同。我建议使用对象;它有一个
编辑:我没有使用java.util.Date,我创建了一个名为Date的构造函数,其中包含3个字段。您不能通过将整数1添加到对象中来直接修改
Date
对象。这是因为它们的类型不同。我建议使用对象;它有一个名为的方法。那会做你想做的事
编辑:我有更详细的说明,但由于这个问题听起来像是家庭作业,我只给你上面的提示。无论如何,它应该足以为您指明正确的方向。试试以下方法:
Calendar c = Calendar.getInstance();
c.setTime(yourDate);
c.add(Calendar.DATE, 1);
yourDate = c.getTime();
编辑
让我们假设对象date1等于1/1/1970,然后我运行
日期1.明天();它将修改它,使之成为1970年2月1日
如果日期对象(例如dt
)是java.util.date,则不能执行dt.tomory()
,除非扩展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);
如果您正在处理
java.util.Date
的对象,则在这些对象上使用+
运算符是无效的
更重要的是,即使+
操作员是合法的,使用它也没有任何意义-date+1
应该将1
添加到日期、月份或年份
要操作java.util.Date
的对象,类Calendar
提供了几种实用方法。其中一个你可以在这里使用的是
在给定日历中添加或减去指定的时间量
字段,基于日历的规则。例如,减去5天
从日历的当前时间开始,您可以通过调用:
编辑:
从编辑中可以看出,您没有使用java.util.Date
对象。既然您的Date
对象维护了三个属性(最有可能是Date、month和year),您应该能够对这些字段应用算术运算符
但是,在操作这些字段时,应小心遵循与日期相关的规则(假设它们属于整数类型之一)
例如,将
1
day添加到28/02/2013
应该同时更新date
实例的日期和月份。您是否正在查找this.day++
?我猜您正在使用日期对象,因此可能会对您有所帮助。您是否正在谈论java.util.date
的对象?看起来像是家庭作业,“所以我认为这不应该被应用。”LuiggiMendoza说得很好。我以前没想过。通常我能发现“家庭作业”问题。我会要求OP澄清。我会将此代码添加到我的明天方法中吗?@MarioStanicic请参阅编辑
add(Calendar.DAY_OF_MONTH, -5)