JAVA练习:自定义MyTime的类

在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。 

定义名为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) 

分别对时、分、秒进行加减运算。

源码:

class MyTime {
    private int hour;
    private int minute;
    private int second;

    public MyTime() {
    }

    // 有参构造函数需要对传入的参数进行判断,时间数据的范围
    public MyTime(int hour) {
	if (hour < 0 || hour >= 24) {
	    return;
	}
	this.hour = hour;
    }

    public MyTime(int hour, int minute) {
	this(hour);
	if (minute < 0 || minute >= 60) {
	    return;
	}
	this.minute = minute;
    }

    public MyTime(int hour, int minute, int second) {
	this(hour, minute);
	if (second < 0 || second >= 60) {
	    return;
	}
	this.second = second;
    }

    // 在原来的时间上加上n秒之后的时间,注意下面的逻辑
    public void addSecond(int sec) {
	int addHour = sec / 3600;
	int addMinute = sec % 3600 / 60;
	int addSecond = sec % 60;

	second += addSecond;
	if (second >= 60) {
	    second -= 60;
	    minute++;
	}
	minute += addMinute;
	if (minute >= 60) {
	    minute -= 60;
	    hour++;
	}
	hour += addHour;
	if (hour >= 24) {
	    hour -= 24;
	}

    }

    public void addMinute(int min) {
	addSecond(min * 60);
    }

    public void addHour(int hou) {
	addSecond(hou * 3600);
    }

    public void subSecond(int sec) {
	int subHour = sec / 3600;
	int subMinute = sec % 3600 / 60;
	int subSecond = sec % 60;

	second -= subSecond;
	if (second < 0) {
	    second += 60;
	    minute--;
	}
	minute -= subMinute;
	if (minute < 0) {
	    minute += 60;
	    hour--;
	}
	hour -= subHour;
	if (hour < 0) {
	    hour += 24;
	}
    }

    public void subMinute(int min) {
	subSecond(min * 60);
    }

    public void subHour(int hou) {
	subSecond(hou * 3600);
    }

    public void diaplay() {
	System.out.println(hour + ":" + minute + ":" + second);
    }

}

public class Timer {

    // 自定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute),秒(second)
    public static void main(String[] args) {
	MyTime mt1 = new MyTime(13, 14, 50);
	mt1.diaplay();
	// mt1.addHour(2);
	// mt1.subHour(3);
	mt1.subMinute(60);
	mt1.subSecond(3601);
	// mt1.addMinute(29);
	// mt1.addSecond(20);
	mt1.diaplay();

    }

}

源码简单,逻辑部分思考下。

你可能感兴趣的:(JAVA基础练习源码)