只是想知道这个功能的结果是否会一直存在?
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点)的价值观都遇到了麻烦,我认为应该解决这个问题吗?
感谢您的时间。
答案 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;
}