2017-01-14 25 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)は1時間が経過すると予想されますが、キーボードからも要求されます。私には意味がありません。それが適切な範囲に入っ迎えるまでに再帰的に値を求めます

public class Test { 

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

} 

} 

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); 
} 
} 

そして、あなたの主な:私はむしろのような何かをしたい、と言っ

関連する問題