duration.java
来自「《Java核心技术应用开发》电子工业出版社书籍源代码」· Java 代码 · 共 137 行
JAVA
137 行
/**
* 这个类描述时间的长度。 它包括小时,分和秒
*
*/
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 + =
减小字号Ctrl + -
显示快捷键?