📄 duration.java
字号:
/**
* 这个类描述时间的长度。 它包括小时,分和秒
*
*/
public class Duration implements java.io.Serializable {
/**
* 小时数
*/
protected int hours;
/**
* 分钟数
*/
protected int minutes;
/**
* 秒数
*/
protected int seconds;
/**
* 默认构造方法
*/
public Duration() {
hours = 0;
minutes = 0;
seconds = 0;
}
/**
* 接受小时,分和秒三个参数的构造方法
*/
public Duration(int theHours, int theMinutes, int theSeconds) {
hours = theHours;
minutes = theMinutes;
seconds = theSeconds;
}
/**
* 接受总秒数的构造方法
*/
public Duration(int totalSeconds) {
hours = totalSeconds / 3600;
int rem = totalSeconds - (hours * 3600);
minutes = rem / 60;
seconds = rem % 60;
}
/**
* 返回小时数
*/
public int getHours() {
return hours;
}
/**
* 返回分钟数
*/
public int getMinutes() {
return minutes;
}
/**
* 返回秒数
*/
public int getSeconds() {
return seconds;
}
/**
* 返回总秒数
*/
public int getTotalSeconds() {
return seconds + (60 * (minutes + (60 * hours)));
}
/**
* 长度求和
*/
public Duration add(Duration aDuration) {
int total = getTotalSeconds() + aDuration.getTotalSeconds();
return new Duration(total);
}
/**
* 长度求差
*/
public Duration subtract(Duration aDuration) {
int diff = getTotalSeconds() - aDuration.getTotalSeconds();
int total = Math.abs(diff);
return new Duration(total);
}
/**
* Duration对象的格式化:
* hh:mm:ss
*
*/
public String toString() {
String result = "";
result = result + padLeadingZero(hours) + ":";
result = result + padLeadingZero(minutes) + ":";
result = result + padLeadingZero(seconds);
return result;
}
/**
* 如果数字小于10, 在数字左面加0
*
* 例如:
* 0 -----> "00"
* 7 -----> "07"
* 14 -----> "14"
*/
private String padLeadingZero(int number) {
String result = "";
if (number < 10) {
result = "0";
}
result = result + Integer.toString(number);
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -