2015-10-17 50 views
0

這是我的代碼到目前爲止。我是一個初學者,我不明白爲什麼這不能正常工作。Java:關於代碼的建議

我的任務是花幾分鐘的時間(2000到40000),並輸出它所花費的天數,小時數,分鐘數(例如25000分鐘是 - 17天8小時40分鐘)。

此外,它應該顯示日期,如果我添加17天8小時40分鐘到2015年9月1日。我甚至不接近輸出(我的顯示0天,6小時,50分鐘) -

它必須看起來像這樣:

還有17天,8個小時,25000分40分鐘。未來 日期將爲2015年9月18日。

有什麼建議嗎?

public static void main(String[] args) { 
    // 1 minute = 60 seconds 
    // 1 hour = 60 x 60 = 3600 
    // 1 day = 3600 x 24 = 86400 

    int input = 25000; 
    int numberOfDays; 
    int numberOfHours; 
    int numberOfMinutes; 

    numberOfDays = input/86400; 
    numberOfHours = (input % 86400)/3600; 
    numberOfMinutes = ((input % 86400) % 3600)/60; 

    System.out.println("Number of days :" + numberOfDays); 
    System.out.println("Number of Hours :" + numberOfHours); 
    System.out.println("Number of Mins :" + numberOfMinutes); 
} 
+0

問題是不夠 – orvi

+0

投票接近清楚。一點都不清楚。 –

+0

這似乎很清楚。 –

回答

2

像克里斯·K說:

final static int ONE_DAY_IN_MINUTES = 1440; 

但是你已經等了兩個錯誤:

numberOfHours = (input % ONE_DAY_IN_MINUTES)/3600; 

你爲什麼會由3600分?

讓我們舉個例子:

我們有1500輸入(它代表1 day : 1 hour : 0 minutes

= (1500 % 1440) 
= 60 

我們知道剩下的就是60分鐘,公式,從分鐘獲得一個小時是:

minutes/60 

在這種情況下六十零分之六十〇= 1,以便正確的代碼是:

numberOfHours = (input % ONE_DAY_IN_MINUTES)/60; 

以下相同的邏輯:

numberOfMinutes = ((input % ONE_DAY_IN_MINUTES) % 60)/60; 

爲什麼會在與模已經給你一個分鐘來獲得其餘的你再除以60?

numberOfMinutes = (input % ONE_DAY_IN_MINUTES) % 60; 
+0

謝謝!真的很有幫助! – Dreamfall

+0

是的,但我仍然沒有聲望。 – Dreamfall

+0

@Dreamfall你只需要檢查問題點下的箭頭。 :)我不認爲你需要聲望來做到這一點 –

0

你常數60,3600和86400是在一分鐘,小時,天數,因此你的程序在計算天數,小時和25000 分鐘相當。您可以使用1,60和24 * 60來代替,它將計算25000分鐘的等效值。

1

編輯從您的代碼..

public static void main(String[] args) { 
    int input = 25000; //25000 mins 
    int numberOfDays = input/(60 * 24); 
    int numberOfHours = input % (60 * 24); 
    int numberOfMinutes = input % 60 

    System.out.println("Number of days :" + numberOfDays); 
    System.out.println("Number of Hours :" + numberOfHours); 
    System.out.println("Number of Mins :" + numberOfMinutes); 
} 

因爲你總是添加到1st September 2015,而不需要處理額外分鐘和秒。 01(9月1日)只需添加numberOfDays即可。


說明:

  • NUMBEROFDAYS =鑑於分鐘鴻溝數的24小時(以分鐘計)
  • NUMBEROFHOURS =鑑於分鐘MOD數的24小時(以分鐘計)
  • numberOfMinutes =鑑於分鐘MOD 1小時(以分鐘計)