3

我正在计算两次之间的差异,并且我能够使用单独的方程式获得小时和分钟的差异,是否有任何单个方程式可以一次获得小时和分钟。我使用的是:

这里 diff 是两个时间值之间的差异

long diffHours1 = diff / (60 * 60 * 1000);
long min=diff/(60*1000);
4

4 回答 4

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 的

于 2012-05-07T07:29:12.123 回答
1

有没有一个方程式可以让我一次得到小时和分钟

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

您可以做一些简化事情的方法是先计算分钟,然后根据分钟计算小时:

long diffMinutes = diff / (60*1000);
long diffHours = diffMinutes / 60;
于 2012-05-07T07:20:56.027 回答
1

就在这里:

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

:-)

于 2012-05-07T07:26:03.530 回答
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

于 2012-05-07T07:26:29.913 回答