使用java設計一個名為Time的類

jitong_豆腐發表於2020-11-27

使用java設計一個名為Time的類,這個類包含:

①表示時間的資料域hour,minute和second
②一個以當前時間建立Time物件的無引數構造方法(使用System.currentTimeMillis()獲取當前時間)
③一個構造Time物件的構造方法,以一個指定的流逝時間值來構造Time物件,這個值從1970年1月1日午夜開始到現在流逝的以毫秒錶示的值(資料域的值表示這個時間)
④以指定的小時、分鐘、和秒來構造Time物件的構造方法
⑤三個資料域hour,minute,second各自的獲取方法
⑥一個名為setTime(long elapsedTime)的方法使用流逝的時間給物件設定一個新的時間。例如,如果流逝的時間是555550000毫秒,則轉換為10小時,10分鐘,10秒。提示:555550000 轉換的過程如下:
totalSeconds = 555550000 / 1000;
second = (int)(totalSeconds % 60);
otalMinutes = totalSeconds / 60;
minute = (int)(totalMinutes % 60);
totalHours = (int)(totalMinutes / 60);
hour = (int)(totalHours % 24);
⑦一個名為setTime(int hour, int minute, int second)的方法給物件設定一個新的時間。
⑧定義名為toString()的方法,返回字串型別,格式如下:
return "Hour: " + this.hour + " Minute: " + this.minute + " Second: " + this.second;
⑨建立三個Time物件(使用new Time(),new Time(555550000)和new Time(3,80,3700)),然後顯示它們的小時,分鐘和秒。


以下為程式碼:

public class Time {
    private int hour;
    private int minute;
    private int second;

    Time() {
        this(System.currentTimeMillis());
    }
    
    //傳入以毫秒計時的引數
    Time(long time) {
        setTime(time);
    }
    
    //傳入小時、分鐘、秒,因為使用者輸入的資料可能小於零,此處丟擲異常
    Time(int hour, int minute, int second) throws IllegalArgumentException {
        if (hour < 0 || minute < 0 || second < 0) {
            System.out.println("輸入的時間有誤");
            throw new IllegalArgumentException();
        }
        //此處用於分析使用者輸入的時間進行修改
        //如使用者輸入的是3600秒,則我們需要為hour增加一個小時
        int seconds = second/60;
        this.second = second%60;
        int minutes = (minute + seconds)/60;
        this.minute = (minute + seconds)%60;
        this.hour = (hour + minutes)%24;
    }

    public void setTime(long elapsedTime) {
        double totalSeconds = elapsedTime / 1000;
        second = (int) (totalSeconds % 60);
        double totalMinutes = totalSeconds / 60;
        minute = (int) (totalMinutes % 60);
        double totalHours = (int) (totalMinutes / 60);
        hour = (int) (totalHours % 24);
    }

    @Override
    public String toString() {
        return "Hour: " + this.hour + " Minute: " + this.minute + " Second: " + this.second;
    }

    public static void main(String[] args) {
        Time t1 = new Time();
        Time t2 = new Time(555550000);
        Time t3 = null;
        try{
            t3 = new Time(3,80,3700);
        }catch (Exception e){

        }
        System.out.println(t1.toString());
        System.out.println(t2.toString());
        System.out.println(t3.toString());

    }
}

相關文章