恬然自得.活在當下: [功課] 輸入時間範圍,先確認格式是否正確後,再行輸出

2010年12月6日 星期一

[功課] 輸入時間範圍,先確認格式是否正確後,再行輸出



先貼上顯示結果,
這裡一併將錯誤結果跟正常結果顯示出來:

D:\My Documents\Java\hw04\src>java s11967046 07 35 00
物件導向程式課程上課時間為:7350
D:\My Documents\Java\hw04\src>java s11967046 99 00 00
小時時間輸入格式錯誤!!
D:\My Documents\Java\hw04\src>java s11967046 00 99 00
分鐘時間輸入格式錯誤!!
D:\My Documents\Java\hw04\src>java s11967046 00 00 88
秒數時間輸入格式錯誤!!



老師的題目中,要求使用setTime來設定時間資料,這個方法是要設定甚麼看不太懂--我的猜測是將時間後面多加個點分秒吧?各位也可以自己加些功能,比方說使用者輸入19點,輸出會變成下午7點,這也是不錯的應用吧?

另外,我的寫法只是提供參考,畢竟還是Java新手XD
(大家記得註解要自己重新打過唷)

public class s11967046 {

    public static void main(String[] args) {
        // 11967046
        /*
         * 請撰寫兩個類別,名稱分別為Time、主類別
         * (主類別名稱請以自己學號命名)。在Time類別中,
         * 設計: 1. validateTime(int h, int m, int s)
         * ==>驗證輸入時間是否在範圍內
         * 2. setTime(int h, int m, int s)==>
         * 設定時間資料
         * 3. getHour()getMinute()getSecond()
         * ==>取得時、分、秒
         * 4. printTime()
         * ==>輸出時、分、秒方法。
         * 在主類別中,利用args參數輸入方式設定時、分、秒,
         * 並使用Time中的setTimegetXXX()printTime方法
         * ,並輸出"物件導向程式課程上課時間為:??????"
         * 若輸入時間格式錯誤,請輸出"??時間輸入格式錯誤!!"
         * 例如: “小時時間輸入格式錯誤!!”分鐘時間輸入格式錯誤!!
         * 秒數時間輸入格式錯誤!!”
         * */
       
        int h,m,s; //擷取args參數內容
       
            //args參數從字串轉成整數
            h=Integer.parseInt(args[0]);
            m=Integer.parseInt(args[1]);
            s=Integer.parseInt(args[2]);
           
            //檢查時間是否錯誤
            if(Time.validateTime(h, m, s)){

                //輸出現在幾點鐘
                Time.printTime();
            }
    }
}
class Time{
   
    static String hour = new String();
    static String minute = new String();
    static String second = new String();
   
    public static boolean validateTime(int h, int m, int s){
        //如果時間的格式錯誤,回傳false
       
        if(h>=24 || h<0){
            System.out.print("小時時間輸入格式錯誤!!");
            return false;
        }else if(m>=60 || m<0){
            System.out.print("分鐘時間輸入格式錯誤!!");
            return false;
        }else if(s>=60 || s<0){
            System.out.print("秒數時間輸入格式錯誤!!");
            return false;
        }else{
            //設定時間格式
            setTime(h, m, s);
            return true;
        }
    }
    public static void setTime(int h, int m, int s){
        /*將時間設為??????秒,
         * 不過我不確定老師的用意是不是這樣?
        */
       
        hour=h+"";
        minute=m+"";
        second=s+"";
    }
    public static String getHour() {
        //回傳小時
        return hour;
       
    }
    public static String getMinute(){
        //回傳分鐘
        return minute;
       
    }
    public static String getSecond(){
        //回傳秒鐘
        return second;
       
    }
   
    public static void printTime(){
        //輸出
        System.out.print("物件導向程式課程上課時間為:" + getHour()+getMinute()+getSecond());
    }
}

沒有留言:

張貼留言

歡迎提供良性建議^_^