2015-10-17 46 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小时(以分钟计)