在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程 序中的需要:
(1)定义名为 MyTime 的类,其中应有三个整型成员:时(hour),分(minute),秒(second)。
(2)为了保证数据的安全性,这三个成员变量应声明为私有。
(3)为 MyTime 类定义构造方法,以方便创建对象时初始化成员变量。
(4)为 MyTime 类添加以下三个方法,分别对时、分、秒进行加减运算。
subSecond(int second) subMinute(int minute) subHour(int hour)
注意时、分、秒可以大于或小于0,在进行计算时还应该注意进位。 如当前时间12:25:40,当调用subSecond(50)时,则时间变为:12:19:50;
(5)重写toString()方法,用于将时间信息打印出来。输出格式为:时:分:秒(12:20:40)
package ex1;
public class MyTime {
private int hour;
private int minute;
private int secon;
public MyTime(int hour, int minute, int secon) {
this.hour = hour;
this.minute = minute;
this.secon = secon;
}
public void subSecond(int second){
this.secon-=second;
while (this.secon<0){
this.secon+=60;
this.minute--;
}
}
public void subMinute(int minute){
this.minute-=minute;
while (this.minute<0){
this.minute+=60;
this.hour--;
}
}
public void subHour(int hour) {
this.hour-=hour;
while (this.hour<0){
this.hour+=24;
}
}
@Override
public String toString() {
return hour+":"+minute+":"+secon;
}
}
测试要求如下:
(1)初始化时间为 12:25:40
(2)减少80秒之后输出时间为:12:24:20
(3)减少70分钟后输出时间为:11:14:20
(4)减少25小时后输出时间为:10:14:20
package ex1;
public class Test {
public static void main(String[] args) {
MyTime myTime = new MyTime(12,25,40);
myTime.subSecond(80);
System.out.println(myTime);
myTime.subMinute(70);
System.out.println(myTime);
myTime.subHour(25);
System.out.println(myTime);
}
}
结果