两次计算差异

时间:2012-05-07 07:14:42

标签: java datetime calendar

我正在计算两次之间的差异,我能够在几小时内得到差异并使用单独的方程式进行分钟,是否有任何单一的方程式,我可以一次性获得小时和分钟。我使用的是:< / p>

这里diff是两个时间值

之间的差异
long diffHours1 = diff / (60 * 60 * 1000);
long min=diff/(60*1000);

4 个答案:

答案 0 :(得分:5)

我不确定它在这里是否有用,但是Joda Time似乎有一些使用Period的详细解决方案,例如

Period p = new Period(startDate, endDate)
int minutes = p.getMinutes(); //returns the left over minutes part
int seconds = p.getSeconds(); //returns the seconds part

我不确定在这个特殊情况下你还需要别的东西,我同意aix的

答案 1 :(得分:1)

  

是否有任何单一的等式,我可以一次获得小时和分钟

不,不容易。 Java表达式只能有一个结果;返回几件事并非不可能,但需要额外的机器(包装类,元组等)。这会导致代码比现在的代码复杂得多。

你可以做些什么来简化一点点计算分钟,然后根据分钟计算小时数:

long diffMinutes = diff / (60*1000);
long diffHours = diffMinutes / 60;

答案 2 :(得分:1)

是的,有:

String oneGo = (diff / (60 * 60 * 1000)) + " " + (diff / (60 * 1000));

: - )

答案 3 :(得分:1)

嗯,两个方程式并不坏(实际上使用更多的线条使其更容易阅读),尽管您可能会更改顺序,更正方程式并缓存一些结果。

diff = //time difference in milliseconds
long diffInMinutes = diff / (60 * 1000);    

//get the number of hours, e.g. 140 / 60 = 2
long hours = diffInMinutes  / 60;

//get the left over minutes, e.g. 140 % 60 = 20
long minutes = diffInMinutes  % 60;   

如果您想要一个等式的原因是易于使用,请尝试使用替代库,如Joda Time