我想我可能明白你想说什么。 “Braj”在他提供的代码中具有正确的想法。但是,我不确定这是否完全满足您的需求。我不确定您是要单独返回每个值(日、月、年),还是使用一种方法一起返回?无论如何,我都会尽力而为。
下面我将向您展示 DateTime 的代码:
import java.util.GregorianCalendar;
class DateTime {
private int day, month, year;
GregorianCalendar date = new GregorianCalendar();
public DateTime() {
day = date.get(GregorianCalendar.DAY_OF_MONTH);
month = date.get(GregorianCalendar.MONTH) + 1;
year = date.get(GregorianCalendar.YEAR);
}
public DateTime(int day, int month, int year){
this.day = day;
this.month = month;
this.year = year;
}
// Accessors ///
public int getDay(){
return day;
}
public int getMonth(){
return month;
}
public int getYear(){
return year;
}
// Mutators ///
public int setDay(){
return day;
}
public int setMonth(){
return month;
}
public int setYear(){
return year;
}
// String ///
public String toString(){
return getMonth() + "/" + getDay() + "/" + getYear();
}
}
现在解释一下。
我以 private 开头的日期、月份和年份,并保持默认构造函数几乎相同,除了一件事。
我在月份中添加了 1,因为 1 月至 12 月月份的索引为 0 - 11 而不是 1 - 12。这意味着您的月份不会遵循常规方法。我从来不知道java的import库中存在GregorianCalendar之类的东西,所以当我测试我的代码时,我最初困惑了几秒钟。
继续我制作了一个额外的构造函数,以防您出于任何原因想要输入自己的日期。如果您不打算制作单独的 DateTime 对象来保存随机日期,那么这完全没有必要。
之后我做了几个访问器——getDay()、getMonth()、getYear()——以防你需要获取日期的特定方面。
为了完成它,我创建了一个 toString() 方法,以传统格式在一个 String 中打印出您的 DateTime 的日期和月份。
如果您不想更改日期的各个方面(例如日、月或年),我建议您去掉“Mutators”。如果您不想访问日期的各个方面,那么我建议您去掉“访问器”。
现在,如果出于某种原因,您希望能够在 CLIENT 中编辑和访问日期的组件,那么您不应该创建 day、month 和 year private 的实例,而是public。
这是 DateTime 类的代码,它允许您更改 CLIENT 中的值。 (我不推荐这个。我建议你习惯于制作访问器和修改器。)我决定称之为DateTime2:
import java.util.GregorianCalendar;
class DateTime2 {
public int day, month, year;
GregorianCalendar date = new GregorianCalendar();
public DateTime2() {
day = date.get(GregorianCalendar.DAY_OF_MONTH);
month = date.get(GregorianCalendar.MONTH) + 1;
year = date.get(GregorianCalendar.YEAR);
}
public DateTime2(int day, int month, int year){
this.day = day;
this.month = month;
this.year = year;
}
public String toString(){
return month + "/" + day + "/" + year;
}
}
我把第二个构造函数留在那里,以防你仍然想用不同的日期创建单独的 DateTime2 对象......
这里如果测试这两个类的客户端代码出来,后面跟着输出:
客户:
public class DateTime_CLIENT{
public static void main(){
DateTime dt = new DateTime();
System.out.println("- DateTime -");
System.out.println("Date: " + dt);
System.out.println("Month: " + dt.getMonth());
System.out.println("Day: " + dt.getDay());
System.out.println("Year: " + dt.getYear() + "\n");
DateTime2 dt2 = new DateTime2();
System.out.println("- DateTime2 -");
System.out.println("Date: " + dt2);
System.out.println("Month: " + dt2.month);
System.out.println("Day: " + dt2.day);
System.out.println("Year: " + dt2.year + "\n");
dt2.day = 400000;
System.out.println("- DateTime2 - CHANGE FROM CLIENT");
System.out.println("Date: " + dt2);
System.out.println("Month: " + dt2.month);
System.out.println("Day: " + dt2.day);
System.out.print("Year: " + dt2.year);
}
}
输出:
- DateTime -
Date: 7/16/2014
Month: 7
Day: 16
Year: 2014
- DateTime2 -
Date: 7/16/2014
Month: 7
Day: 16
Year: 2014
- DateTime2 - CHANGE FROM CLIENT
Date: 7/400000/2014
Month: 7
Day: 400000
Year: 2014
希望这有帮助! ;D