使用java.util.Calendar存储和检索存储在对象中的日期

时间:2016-05-03 19:44:31

标签: java oop

我需要在“人”类中存储生日。 如果使用java.util.Calendar存储日期,如何使用“Person”对象访问日期?

我尝试创建一个get方法,但后来意识到java.util.Calendar是静态的。然后我尝试创建一个生日包装类,但再次遇到麻烦返回对象。

以下是我到目前为止的一些内容:

public class Person {
private String firstname;
private String surname;

public Person(String firstname, String surname, BirthdateWrapper birth)   {
    this.firstname = firstname;
    this.surname = surname;
    BirthdateWrapper birthday = birth;
}

public String getFirst(){
    return firstname;
}

public String getSurt(){
    return surname;
}

public BirthdateWrapper returnBirthObj() {
    return birthday;
}

}


import java.util.Calendar;

public class BirthdateWrapper {
private int day;
private int month;
private int year;

Calendar birthday = Calendar.getInstance();

public BirthdateWrapper(int day, int month, int year) {
    this.day = day;
    this.month = month;
    this.year = year;
    setBirth();
    }

private void setBirth() {
    birthday.set(year, month, day);
}

}

2 个答案:

答案 0 :(得分:1)

如果您正在使用GregorianCalendar,则可以使用构造函数。否则,您需要创建日历实例,然后手动设置每个字段:

public void testX() {
   ...
   // Using GregorianCalendar
   Calendar bday1 = new GregorianCalendar(2016, 0, 1);
   person.setBirthdate(bday1);

   // Using Calendar
   Calendar bday2 = Calendar.getInstance();
   bday2.set(Calendar.YEAR, 2016);
   bday2.set(Calendar.MONTH, 0);
   bday2.set(Calendar.DAY_OF_MONTH, 1));
   person.setBirthdate(bday2);
   ...
}

有关您可以使用的其他构造函数,请参阅GregorianCalendar。您还可以创建自己的MyCalendar类来创建自己的构造函数。

答案 1 :(得分:0)

您需要查看Class Calendar

此抽象类提供从java.util.Date实例获取Calendar的函数。例如,

calendar.getTime();

  

如果日期正常,我如何使用“Person”对象访问日期   使用java.util.Calendar存储

假设这是您Person的定义。

public class Person {
     private String name;
     ...
     public static Calendar birthDate; // since you specified it's static
     ...
     // accessors/mutators
}

Person.birthDate.getTime();会告诉你约会对象。但请记住,我会建议您阅读Calendar课程,因为它有很多有关set()get()add()roll()方法的详细信息,这些方法应该被理解为了从Calendar获得真正的好处。

希望我能清楚地理解这个问题并做出相应的回答。评论我是否误解了。