计算一天中两次之间的小时差异

时间:2011-11-15 16:51:21

标签: java time

只是想知道这个功能的结果是否会一直存在?

private int calcHourDiff(int start, int end) {

    int diff;

    if(start > end) {
        diff = ((2400 - start) + end) / 100;
    } else if(start < end) {
        diff = (end - start) / 100;
    } else {
        diff = 0;
    }

    return diff;

}

函数作为军事时间传递,它应该返回两者之间的小时数。传递的值总是“简单”数字,例如1200,1400,2100而不是2134或015.它需要能够正确计算所有可能的情况,这个函数会保持吗?

我从晚上(晚上8点或2000年)到第二天(早上6点或600点)的价值观都遇到了麻烦,我认为应该解决这个问题吗?

感谢您的时间。

3 个答案:

答案 0 :(得分:2)

只是为了与众不同,这是一个没有任何条件的版本:

private int calcHourDiff(int start, int end) {
    return ((end - start + 2400) % 2400) / 100;
}

答案 1 :(得分:0)

看起来不错。

当比较两个数字x和y时,只有3种可能的结果:x == y,x&lt; y,x&gt; ÿ

你的if块涵盖了所有三个,每个条件的数学计算看起来都很好。

只是担心传递的数据总是“简单”和正确的假设。

答案 2 :(得分:0)

private int calcHourDiff(int start, int end) {

  int newEnd = (start > end)?end + 2400 : end;
  return (newEnd - start) / 100;
}