日期抽象数据类型的两种实现
一日期抽象数据类型APIpublicclassDateDate(int month,int day,int year)创建一个日期intday()日int month()月int year()年...
·
一 日期抽象数据类型API
public class Date | |
Date(int month,int day,int year) | 创建一个日期 |
int day() | 日 |
int month() | 月 |
int year() | 年 |
String toString() | 对象的字符串表示 |
二 测试用例
package MyDate;
/**
* Copyright (C), 2020-2020, XXX有限公司
* FileName: Test
* Author: cakin
* Date: 2020/1/11
* Description: Date日期测试
*/
public class Test {
public static void main( String[] args ) {
int m = Integer.parseInt(args[0]);
int d = Integer.parseInt(args[1]);
int y = Integer.parseInt(args[2]);
BasicDate date1 = new BasicDate(m,d,y);
SmallDate date2 = new SmallDate(m,d,y);
System.out.println(date1);
System.out.println(date2);
}
}
三 BasicDate的实现
package MyDate;
/**
* Copyright (C), 2020-2020, XXX有限公司
* FileName: BasicDate
* Author: cakin
* Date: 2020/1/11
* Description: Date抽象数据类型的一种实现-BasicDate
*/
public class BasicDate {
private final int month;
private final int day;
private final int year;
public BasicDate( int month, int day, int year ) {
this.month = month;
this.day = day;
this.year = year;
}
public int month() {
return month;
}
public int day() {
return day;
}
public int year() {
return year;
}
@Override
public String toString() {
return month() +
"/" + day() +
"/" + year() ;
}
}
四 SmallDate的实现
package MyDate;
/**
* Copyright (C), 2020-2020, XXX有限公司
* FileName: SmallDate
* Author: cakin
* Date: 2020/1/11
* Description: Date抽象数据类型的一种实现-SmallDate
*/
public class SmallDate {
private final int value;
public SmallDate(int m,int d,int y){
value = y*512+m*32+d;
}
public int month(){
return (value/32)%16;
}
public int day(){
return value%32;
}
public int year(){
return value/512;
}
@Override
public String toString() {
return month()+"/"+day()+"/"+year();
}
}
五 测试结果
F:\Algorithm\target\classes>java MyDate.Test 12 31 1999
12/31/1999
12/31/1999
更多推荐
已为社区贡献42条内容
所有评论(0)