题目如下:
在程序中经常要对时间进行操作但是并没有时间类型的数据。
那么我们可以自己实现一个时间类来满足程序中的需要。
定义名为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 Ex484_Test {
public static void main(String[] args) {
Mytime mytime = new Mytime(23,55,10);
mytime.disPlay();
mytime.addSecond(34);
mytime.disPlay();
mytime.addMinute(67);
mytime.disPlay();
mytime.addHour(3);
mytime.disPlay();
mytime.subSecond(60);
mytime.disPlay();
mytime.subHour(3);
mytime.disPlay();
mytime.subMinute(44);
mytime.disPlay();
}
}
class Mytime{
private int hour;
private int minute;
private int second;
public void disPlay(){
System.out.println("现在时间是: "+this.hour+"时"+this.minute+"分"+this.second+"秒");
}
public void addHour(int h){
hour = (hour + h)%24;
}
public void subHour(int h){
hour = (hour - h)%24;
if(hour < 0){
hour = 24 + hour;
}
}
public void addMinute(int m){
int t = 0;
t = (minute + m)/60;
minute = (minute + m)%60;
if(t > 0){
this.addHour(t);
}
}
public void subMinute(int m){
int t = 0;
t = (minute - m)/60;
if(m > minute) {
minute = 60 + ((minute - m)%60);
this.subHour(-(t-1));
}
else
minute = minute - m;
}
public void addSecond(int s){
int t = 0;
t = (second + s)/60;
second = (second + s)%60;
if(t > 0){
this.addMinute(t);
}
}
public void subSecond(int s){
int t = 0;
t = (second - s)/60;
if(s > second){
second = 60 + ((second - s)%60);
this.subMinute(-(t-1));
}
else
second = second - s;
}
public Mytime(int hour, int minute, int second) {
this.hour = hour;
this.minute = minute;
this.second = second;
}
public Mytime() {
}
public int getHour() {
return hour;
}
public void setHour(int hour) {
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
this.minute = minute;
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
this.second = second;
}
}
测试结果: