2015-11-20 17 views
0

我有功課如何解決這個問題? java的功課

這是我的問題

enter image description here

和我的代碼是

public class DisplayTime { 

    public static void main(String[] args) {   
     int seconds = 290; 
     int hour = seconds/60/60; 
     int minute = seconds/60; 

     seconds = seconds%60;  

     System.out.printf("The amount of [ 290 ] seconds are %02d:%02d:%02d\n",hour,minute,seconds); 

     seconds = 7650; 
     hour = seconds/60/60; 
     minute = seconds/60; 

     seconds = seconds%60; 

     System.out.printf("The amount of [ 7650 ] seconds are %02d:%02d:%02d\n",hour,minute,seconds); 
    } 
} 

我在7650輸出不一樣,爲什麼? :(

和我的解決方案是真的嗎?

+6

順便說一句,你的問題問你創建一個程序,它是能夠轉換秒分爲小時,分鐘和秒鐘。在這裏,你只是試圖做兩個值(290和7650)。使其作爲一個通用的資格作爲答案否則你將失敗在這個功課 –

+1

如果你懶得添加一個問題,你可以添加一個屏幕截圖只包含有趣的部分... –

回答

2

那是因爲你沒有減去分鐘的時間,所以時間被重複計算,即,使用minute = seconds/60 - hour * 60;代替minute = seconds/60;你會得到正確的結果。

實際上是第一部分(The amount of [ 290 ] seconds are 00:04:50)你也應該修改代碼。它看起來不錯的原因是因爲290秒是不到一個小時,所以沒有出現問題。

這裏充滿代碼:

public class DisplayTime { 

    public static void main(String[] args) { 

     int seconds = 290; 
     int hour = seconds/60/60; 
     int minute = seconds/60 - hour * 60;; 

     seconds = seconds % 60; 

     System.out.printf("The amount of [ 290 ] seconds are %02d:%02d:%02d\n", hour, minute, seconds); 

     seconds = 7650; 
     hour = seconds/60/60; 
     minute = seconds/60 - hour * 60; 

     seconds = seconds % 60; 

     System.out.printf("The amount of [ 7650 ] seconds are %02d:%02d:%02d\n", hour, minute, seconds); 
    } 
} 

下面是結果:

The amount of [ 290 ] seconds are 00:04:50 
The amount of [ 7650 ] seconds are 02:07:30 
+1

謝謝兄弟.. – Mohannad

+0

@Mohannad謝謝很多很愉快的週末:-) –

6

由於@Balwinder在他的評論中提到的,那你最好有它接受秒,打印出格式化顯示時間一個輔助方法。下面的代碼只需幾行即可完成。

public static void printHMS(int secs) { 
    int seconds = secs % 60; 
    int minutes = (secs/60) % 60; 
    int hours = (secs/60)/60; 

    System.out.printf("The amount of [ %d ] seconds are %02d:%02d:%02d\n", secs, hours, minutes, seconds); 
} 

public static void main(String args[]) { 
    printHMS(290); 
    printHMS(7650); 
} 

輸出:

The amount of [ 290 ] seconds are 00:04:50 
The amount of [ 7650 ] seconds are 02:07:30 
0

它像一個親:

/*** Returns the Time**/ 
public static String getTimeEdited(int seconds) { 

    if (seconds/60 > 60) // Is more than one hour>60 
     return String.format("%02d:%02d:%02d",(seconds/60)/60,(seconds/60)%60,seconds%60); 
    else     // Is less than one hour<60 
     return String.format("%02d:%02d",(seconds/60)%60,seconds%60); 


}