最近看动力节点的javase进阶视频,其中一道作业题,实现对时间的改变。
package com.advance.javase.a;
public class MyTime {
private int hour;
private int minute;
private int second;
public static void main(String[] args) {
MyTime myTime = new MyTime(22, 46, 30);
myTime.addSecond(90);
myTime.display();
}
public MyTime(int hour, int minute, int second) {
this.hour = hour;
this.minute = minute;
this.second = second;
}
public MyTime() {
}
public void display(){
System.out.println(this.hour+"时"+this.minute+"分"+this.second+"秒");
}
public void addSecond(int second){
this.second=this.second+second;
this.secondException();
this.minuteException();
this.hourException();
}
public void subSecond(int second){
this.second=this.second-second;
this.secondException();
this.minuteException();
this.hourException();
}
public void subMinute(int minute){
this.minute=this.minute-minute;
this.secondException();
this.minuteException();
this.hourException();
}
public void addMinute(int minute){
this.minute=this.minute+minute;
this.secondException();
this.minuteException();
this.hourException();
}
public void subHour(int hour){
this.hour=this.hour-hour;
this.secondException();
this.minuteException();
this.hourException();
}
public void addHour(int hour){
this.hour=this.hour+hour;
this.secondException();
this.minuteException();
this.hourException();
}
public void secondException() {
while (this.second >= 60) {
int n = this.second / 60;
this.minute = this.minute + n;
this.second = this.second % 60;
}
while (this.second < 0) {
int n = this.second / 60 - 1;
this.minute = this.minute + n;
this.second = 60+this.second % 60;
}
}
public void minuteException() {
while (this.minute >= 60) {
int n = this.minute / 60;
this.hour = this.hour + n;
this.minute = this.minute % 60;
}
while (this.minute < 0) {
int n = this.minute / 60 - 1;
this.hour = this.hour + n;
this.minute = 60+this.minute % 60;
}
}
public void hourException() {
while (this.hour >= 24) {
this.hour=this.hour-24;
}
while (this.hour < 0) {
this.hour=24+this.hour;
}
}
}