public class MyTime {
private int hour;
private int minute;
private int second;
public MyTime(int hour, int minute, int second) {
this.hour = hour;
this.minute = minute;
this.second = second;
}
public void subSecond(int second) {
this.second -= second; // 减去指定秒数
// 如果秒数小于0,向分钟借位
while (this.second < 0) {
this.second += 60; // 秒数加回60
subMinute(1); // 减少1分钟
}
}
public void subMinute(int minute) {
this.minute -= minute; // 减去指定分钟数
// 如果分钟小于0,向小时借位
while (this.minute < 0) {
this.minute += 60; // 分钟加回60
subHour(1); // 减少1小时
}
}
public void subHour(int hour) {
this.hour -= hour; // 减去指定小时数
// 如果小时小于0,从24小时制循环
while (this.hour < 0) {
this.hour += 24; // 小时加回24
}
}
@Override
public String toString() {
return String.format("%02d:%02d:%02d", hour, minute, second); // 格式为 02位小时:02位分钟:02位秒
}
}
public class Test {
public static void main(String[] args) {
MyTime time = new MyTime(12, 25, 40); // 初始化时间为 12:25:40
time.subSecond(80);
System.out.println(time);
time.subMinute(70);
System.out.println(time);
time.subHour(25);
System.out.println(time);
}
}
结果
12:24:20
11:14:20
10:14:20