1. 程式人生 > >2669-2-2 Time類的定義-JAVA

2669-2-2 Time類的定義-JAVA

2-2 Time類的定義

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

通過本題目的練習可以掌握類與物件的定義;

設計一個時間類Time,私有資料成員有hour(時)、minute(分)、second(秒);

公有成員函式有:setHour(int)設定資料成員hour的值(採用12小時制),非法的輸入預設為12;setMinue(int)設定資料成員minute的值,非法輸入預設為0;setSecond(int)設定資料成員second的值,非法輸入預設為0;setTime(int,int,int)設定時、分、秒三個資料成員的值; showTime()顯示時間物件的值。

在主函式main()中呼叫相應成員函式,使得時間物件的值能從鍵盤接收,並正確顯示。 提示:時、分、秒均按2位數值形式顯示 。

Input

輸入3個整數,用一個空格間隔

Output

輸出 時、分、秒的值,中間用“:”間隔

Sample Input

10 11 12

Sample Output

10:11:12

Hint

輸入

58 23 85

輸出

12:23:00

Source

import java.text.*;
import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		while (scanner.hasNext()) {
			int h = scanner.nextInt();
			int m = scanner.nextInt();
			int s = scanner.nextInt();
			Time time = new Time(h, m, s);
			time.setTime();
			time.showTime();
		}
	}
}

class Time {
	private int hour, minute, second;
	DecimalFormat decimalFormat = new DecimalFormat("00");

	public Time(int hour, int minute, int second) {
		super();
		this.hour = hour;
		this.minute = minute;
		this.second = second;
	}

	public void setHour() {
		if (hour >= 12 || hour < 0) {
			hour = 12;
		}
	}

	public void setMinute() {
		if (minute >= 60 || minute < 0) {
			minute = 0;
		}
	}

	public void setSecond() {
		if (second >= 60 || second < 0) {
			second = 0;
		}
	}

	public void setTime() {
		setHour();
		setMinute();
		setSecond();
	}

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