2017-01-14 74 views
-1

我想讓程序以我在displayTime方法中指定的格式輸入並顯示它。不要求用戶輸入直接跳到displayTime方法的值,並將值賦給00; 00; 00。有人可以幫助我,讓我知道需要改變什麼,所以它首先需要輸入,然後顯示?時間輸入和顯示

import java.util.Scanner; 
public class Time { 
Scanner input = new Scanner(System.in); 
private int hour = 0; 
private int minute = 0; 
private int second = 0; 

public void getHour(int h) { 
h = hour; 
System.out.println("Enter Hour:"); 
h = input.nextInt(); 

} 
public void getMinute(int m) { 
    m = minute; 
    System.out.println("Enter Minute:"); 
    m = input.nextInt(); 
} 
public void getSecond(int s) { 
    s = second; 
    System.out.println("Enter Second:"); 
    s = input.nextInt(); 
} 

public String displayTime() { 
return String.format("%02d:%02d:%02d", hour, minute, second); 
} 
} 
public class Test { 

public static void main (String args[]) { 
Time TimeObject = new Time(); 
System.out.println(TimeObject.displayTime()); 
} 
} 
+0

不是一個很好的堆棧溢出問題。您可以查看關於Scanner的數百個現有問題中的任何一個,並比較您的代碼。然後你的世界要麼(a)解決你的問題,要麼(b)把它縮小到一個非常具體的問題來在這裏提出。 –

回答

0

試試這個:

class Time { 
private int hour = 0; 
private int minute = 0; 
private int second = 0; 

public void getHour(int h) { 
    hour = h; 
} 
public void getMinute(int m) { 
    minute = m; 
} 

public void getSecond(int s) { 
    second = s; 
} 
public String displayTime() { 
    return String.format("%02d:%02d:%02d", hour, minute, second); 
} 
} 
public class Test{ 
public static void main(String[] args) { 
    int h, m, s; 
    Scanner input = new Scanner(System.in); 
    System.out.println("Enter Hour:"); 
    h = input.nextInt(); 
    System.out.println("Enter Minute:"); 
    m = input.nextInt(); 
    System.out.println("Enter Second:"); 
    s = input.nextInt(); 
    Time TimeObject = new Time(); 
    TimeObject.getHour(h); 
    TimeObject.getMinute(m); 
    TimeObject.getSecond(s); 
    System.out.println(TimeObject.displayTime()); 
} 
} 
+0

謝謝,我想我應該把主要課程的輸入? – cris22tian

+0

您還沒有在main()中調用getHour(),getMinute(),getSecond()。這就是爲什麼這些方法中的代碼沒有運行 –

1

很多事情是錯在你的榜樣。首先,按照慣例,變量名稱在Java中以小寫字母開頭,其次,您的方法getHour(int h)預計會傳遞一個小時,但也會從鍵盤請求它。對我來說沒有意義。

這麼說,我寧願做這樣的事情:

public class Time { 

Scanner input = new Scanner(System.in); 
private int hours = 0; 
private int minutes = 0; 
private int seconds = 0; 

private int getHours() { 
    System.out.println("Hours:"); 
    int hour = input.nextInt(); 
    if (hour < 0 || hour >= 24) { 
     System.out.println("Wrong input. Hours must be between 0 and 23.Try again..."); 
     return getHours(); 
    } 
    return hour; 
} 

private int getMinutes() { 
    System.out.println("Minutes:"); 
    int minute = input.nextInt(); 
    if (minute < 0 || minute >= 60) { 
     System.out.println("Wrong input. Minutes must be between 0 and 59. Try again..."); 
     return getMinutes(); 
    } 
    return minute; 
} 

private int getSeconds() { 
    System.out.println("Seconds:"); 
    int second = input.nextInt(); 
    if (second < 0 || second >= 60) { 
     System.out.println("Wrong input. Seconds must be between 0 and 59. Try again..."); 
     return getSeconds(); 
    } 
    return second; 
} 

public void getTime() { 
    hours = getHours(); 
    minutes = getMinutes(); 
    seconds = getSeconds(); 
} 

public String displayTime() { 
    return String.format("%02d:%02d:%02d", hours, minutes, seconds); 
} 
} 

而主要:

public class Test { 

public static void main(String args[]) { 
    Time time = new Time(); 
    time.getTime(); 
    System.out.println(time.displayTime()); 

} 

} 

,直到它在適當的範圍內得到進入這將遞歸索要價值。