题目
在程序中经常要对时间进行操作但是并没有时间类型的数据。
那么我们可以自己实现一个时间类来满足程序中的需要。
定义名为MyTime的类其中应有三个整型成员时hour分minute秒second
为了保证数据的安全性这三个成员变量应声明为私有。
为MyTime类定义构造方法以方便创建对象时初始化成员变量。
再定义diaplay方法用于将时间信息打印出来。
为MyTime类添加以下方法
addSecond(int sec)
addMinute(int min)
addHour(int hou)
subSecond(int sec)
subMinute(int min)
subHour(int hou)
分别对时、分、秒进行加减运算。
分析
对时间进行加减时,加法运算时,要考虑每满60秒,对应的分加1。满60分,对应的时要加1.减法运算则反之。
/* 在程序中经常要对时间进行操作但是并没有时间类型的数据。 那么我们可以自己实现一个时间类来满足程序中的需要。 定义名为MyTime的类其中应有三个整型成员时hour分minute秒second 为了保证数据的安全性这三个成员变量应声明为私有。 为MyTime类定义构造方法以方便创建对象时初始化成员变量。 再定义diaplay方法用于将时间信息打印出来。 为MyTime类添加以下方法 addSecond(int sec) addMinute(int min) addHour(int hou) subSecond(int sec) subMinute(int min) subHour(int hou) 分别对时、分、秒进行加减运算。 */ public class Day1601 { public static void main(String[] args) { MyTime m = new MyTime(14,58,42); m.display(); m.addSecond(58); m.addMinute(43); m.addHour(20); m.display(); m.subSecond(58); m.subMinute(43); m.subHour(20); m.display(); System.out.println("Hello World!"); } } class MyTime { //私有化、封装 private int hou; private int min; private int sec; public MyTime(){ this(0,0,0); } public MyTime(int hou,int min,int sec){ this.hou = hou; this.min = min; this.sec = sec; } public void setHou(int hou){ this.hou = hou; } public int getHou(){ return hou; } public void setMin(int min){ this.min = min; } public int getMin(){ return min; } public void setSec(int sec){ this.sec = sec; } public int getSec(){ return sec; } public void display(){ System.out.println(getHou()+"时"+getMin()+"分"+getSec()+"秒"); } public void addSecond(int sec){ if ((getSec()+sec) > 60) { setSec(getSec()+sec-60); setMin(getMin()+1);//超过60秒进1分钟 }else{ setSec(getSec()+sec); } } public void addMinute(int min) { if ((getMin()+min)>60) { setMin(getMin()+min-60);//超过60分进1小时 setHou(getHou()+1); }else{ setMin(getMin()+min); } } public void addHour(int hou){ if ((getHou()+hou)>24) { setHou(getHou()+hou-24); System.out.println("+1天");//超过24小时,则+1天 }else{ setHou(getHou()+hou); } } public void subSecond(int sec){ if ((getSec()-sec)<0) { setSec(getSec()+60-sec); setMin(getMin()-1); }else{ setSec(getSec()-sec); } } public void subMinute(int min) { if ((getMin()-min)<0) { setMin(getMin()+60-min); setHou(getHou()-1); }else{ setMin(getMin()-min); } } public void subHour(int hou) { if ((getHou()-hou)<0) { setHou(getHou()+24-hou); System.out.println("-1天"); }else{ setHou(getHou()-hou); } } }