, 21:00 0 개의 24 시간 값을 감산 할 필요
- (!) 23시간 아니라 반환해야 22시 -1 시간.
몇 분은 상관 없습니다.
검색을 시도했지만 얻을 수 없습니다. 그러나 나는 이미 그것을위한 기능이 있다는 것을 느낀다. 그래서 그것을 쓰는 것을 괴롭히지 않았다.
감사합니다.
, 21:00 0 개의 24 시간 값을 감산 할 필요
- (!) 23시간 아니라 반환해야 22시 -1 시간.
몇 분은 상관 없습니다.
검색을 시도했지만 얻을 수 없습니다. 그러나 나는 이미 그것을위한 기능이 있다는 것을 느낀다. 그래서 그것을 쓰는 것을 괴롭히지 않았다.
감사합니다.
사용 모듈 : (24+a-b)%24
(I 11 오타가 여기에 있다고 가정하고, 정답은 23)
그냥 정수로 처리하고 0-23으로 정규화하십시오. 당신이 정말로 생각한다면
var c = (a%24 - b%24);
return c < 0 ? c+24;
것은 21시에서 22시까지 == 11, 당신은 그래서 당신이 24 시간으로 표현 된 두 번 사이의 12 시간 시간 값의 차이를 원하는 뜻한다 당신은 정말 계수 12 원하는 :
var c = (a%12 - b%12);
return c < 0 ? c+12;
반환 (9-10) + 12 = 11
내가 당신이 원하는 것은 21시 생각 - 22시 23 시간 제공합니다. 다시 말해, 오늘 밤 10 시가되면 내일 9 시가 23 시간 남았습니다. 쉽습니다.
hours = (time1 - time2 + 24) % 24;
는 나머지 연산자
왜 (24)를 추가에게 무엇입니까? 괄호 안에 24를 추가하면 음수의 모듈로를 취할 때 정의되지 않은 동작 문제가 해결됩니다. 이것은 파이프 라인을 정지시키지 않기 때문에 if 문보다 낫습니다.
어? 21 : 00-22 : 00 = 11 시간은 어떻게됩니까? –
21과 22는 어떻게 11일까요? 내 말은, 나는 23을 이해 하겠지만, 11은 이해하겠습니까? – Nanne