2014-07-20 2 views
1

나는 시간 슬롯을 선택하는 사용자 주위에서 작동하는 예약 시스템에서 작업 중이며 중복 된 예약을 확인하려고 시도하고 있습니다.시간 슬롯 교차하기

사용 가능한 모든 시간 슬롯을 반환하는 함수를 만들려고합니다. 나는 그날 예약으로 bookings이라는 배열을 가지고 있는데 배열은 slots입니다. I가 어레이를 통해 반복이 시도 시도

:

if (slot.start > booking.dateStart.clone().addMinutes(-30) && slot.end < booking.dateEnd.clone().addMinutes(30))

어떠한 오버랩을 확인하고, 존재하는 경우 I 어레이에서 슬롯 스플 라이스. 나는 각 예약 사이에 30 분의 간격을 남겨 둘 필요가 있으므로 그래서 분을 추가하는 이유입니다. 중첩 기간을 찾을

답변

5

수식은 사실이라면 기간이 오버랩 할

start1 <= end2 && end1 >= start2 

이다. 30 분 간격을 유지해야하는 경우 end1start2의 비교에 추가하십시오.

+1

와우, 어떻게 그리워 했습니까? 밤새도록 복잡한 해결책을 써서 간단히 해결할 수 있습니다. 고마워! – user2117190

관련 문제