我正在计算两次之间的差异,我能够在几小时内得到差异并使用单独的方程式进行分钟,是否有任何单一的方程式,我可以一次性获得小时和分钟。我使用的是:< / p>
这里diff是两个时间值
之间的差异long diffHours1 = diff / (60 * 60 * 1000);
long min=diff/(60*1000);
答案 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。