[英]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;
哪里
为什么加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.