繁体   English   中英

计算24小时时差

[英]Calculating time difference in 24-hour

我需要从0到23减去两个24小时制的时间值。

例如,21:00-22:00应该返回23小时而不是-1(!)小时。

我不在乎分钟。

我尝试搜索,但找不到。 但我觉得它已经有了它的功能,所以没有费心去写一个。

谢谢你们。

减去两次,如果结果为负,则加24。

我想你想要的是21:00 - 22:00给你23个小时。 换句话说,如果今天是10点,那么明天9点将是23小时。 这很容易。

hours = (time1 - time2 + 24) % 24;

哪里

  • time1和time2必须以小时为单位
  • %是模运算符

为什么加24? 当对负数取模时,在方括号内加上24可以解决不确定行为的问题。 这比if语句更好,因为它不会使管道停顿。

使用模数: (24+ab)%24

(我假设11这是一个错字,正确的答案是23)

只需将它们视为整数并将其标准化为0-23即可。

var c = (a%24 - b%24);
return c < 0 ? c+24;

如果您真的认为21:00-22:00 == 11,那么您必须意味着您希望两次之间的12小时小时值之间存在差异,这些值以24小时为单位表示,因此您确实需要模数12:

var c = (a%12 - b%12);
return c < 0 ? c+12;

返回(9 - 10)+ 12 = 11

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM