import java.util.Calendar;
public class MyTime {
private int hour, minute, second;
private static final char SEPARATOR = '-';
public MyTime() { }
public MyTime(int h, int m, int s) {
hour = h;
minute = m;
second = s;
if (hour > 23 || minute > 59 || second > 59) adjust();
}
public void forwardOneSecond() {
second++;
if (second > 59) adjust();
}
private void adjust() { // 如果时间格式不正确,做相应调整
minute += second / 60;
second %= 60;
hour += minute / 60;
minute %= 60;
hour %= 24;
}
public long offsetByNow() {
Calendar myTime = Calendar.getInstance();
Calendar now = Calendar.getInstance();
myTime.set(now.get(Calendar.YEAR), now.get(Calendar.MONTH), now.get(Calendar.DATE), hour, minute, second);
return (myTime.getTimeInMillis() - now.getTimeInMillis()) / 1000;
}
public String toString() {
return (hour<10?"0":"") + hour + SEPARATOR
+ (minute<10?"0":"") + minute + SEPARATOR
+ (second<10?"0":"") + second;
}
// 测试程序
public static void main(String[] args) {
MyTime myTime = new MyTime(13, 30, 8);
System.out.println(myTime);
myTime.forwardOneSecond();
System.out.println("前进一秒后:" + myTime);
System.out.println("与当前时间之差(秒):" + myTime.offsetByNow());
}
}