题目:
设计完成一个Timer类,要求该类能够实现以下功能:
a.该类以小时和分钟记录一天中的时间;提供两种计时功能,一种以24小时计时,一种
以12小时计时;默认以24小时计时;
b.可以以当前时间构造对象;
c.可以设置一个特定的时间来构造对象;
d.能够访问时间的小时数;
e.能够访问时间的分钟数;
f.提供方法能够将时间增加1小时;
g.提供方法能够将时间增加特定的小时;
h.提供方法能够将时间增加1分钟;
i.提供方法能够将时间增加n分钟;
j.提供toString( )方法用来打印时间,以24小时计时,输出“23:30”;以12小时计时,输出“00:15AM”,“12:00PM”,“11:59PM”。
测试自己写的类。
代码如下:
1.Timer类
import java.time.LocalTime;
public class Timer {
int hour24;
int hour12;
int minute;
int mode = 0;// 1表示24h计时。0表示12h计时
public Timer() {// 以当前时间构造对象
LocalTime t = LocalTime.now();
hour24 = t.getHour();
minute = t.getMinute();
hour12 = hour24 % 12;
}
public Timer(int H, int M) {// 设置一个特定的时间来构造对象
hour24 = H;
minute = M;
hour12 = hour24 % 12;
}
public void add_one_hour() {// 提供方法能够将时间增加1小时
hour24++;
hour24 %= 24;
hour12 = hour24 % 12;
}
public void add_arbitrary_hour(int n) {// 提供方法能够将时间增加特定的小时
hour24 += n;
hour24 %= 24;
hour12 = hour24 % 12;
}
public void add_one_min() {// 提供方法能够将时间增加1分钟
minute++;
if (minute > 59) {
hour24++;
hour24 %= 24;
hour12 = hour24 % 12;
}
minute %= 60;
}
public void add_arbitrary_min(int n) {// 提供方法能够将时间增加n分钟
minute += n;
if (minute > 59) {
hour24++;
hour24 %= 24;
hour12 = hour24 % 12;
}
minute %= 60;
}
public String toString() {// 提供toString( )方法用来打印时间
String t = "";
if (mode == 1) {// 24h计时
if (hour24 < 10) {
t = t + "0" + hour24 + ":";
} else {
t = t + hour24 + ":";
}
if (minute < 10) {
t = t + "0" + minute;
} else {
t = t + minute;
}
} else {// 12h计时
String Time;
if (hour24 < 12) {
Time = "AM";
} else {
Time = "PM";
}
if (hour12 < 10) {
t = t + "0" + hour12 + ":";
} else {
t = t + hour12 + ":";
}
if (minute < 10) {
t = t + "0" + minute + Time;
} else {
t = t + minute + Time;
}
}
System.out.println(t);
return null;
}
}
2.TimerTest
public class TimerTest {
public static void main(String[] args) {
Timer t1 = new Timer();
t1.toString();
t1.add_one_min();
t1.add_one_hour();
t1.toString();
t1.add_arbitrary_hour(2);
t1.add_arbitrary_min(8);
t1.toString();
Timer t2 = new Timer(10, 59);
t2.toString();
t2.add_one_min();
t2.add_one_hour();
t2.toString();
t2.add_arbitrary_hour(2);
t2.add_arbitrary_min(8);
t2.toString();
}
}