我需要从0到23减去两个24小时的时间值。
例如,21:00-22:00应该返回23小时而不是-1(!)小时。
我不关心会议记录。
我尝试过搜索,却找不到。但是我觉得它已经有了它的功能,所以没有费心去写一个。
谢谢大家。
答案 0 :(得分:1)
减去两次,如果结果为负,则加上24。
答案 1 :(得分:1)
我想你想要的是21:00-22:00给你23个小时。换句话说,如果今天是10点,那么明天9点就是23个小时。这很容易。
hours = (time1 - time2 + 24) % 24;
其中
为什么要添加24?在取括号的模数时,在括号内添加24会解决未定义行为的问题。这比if语句更好,因为它不会使管道停滞。
答案 2 :(得分:0)
使用模数:(24+a-b)%24
(我假设11这里是一个拼写错误,正确答案是23)
答案 3 :(得分:0)
只需将它们视为整数并将其标准化为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