private function Collides(ReservationListItem $item, $itemIndex) { $previousItem = $itemIndex > 0 ? $this->_items[--$itemIndex] : null; $nextItem = $itemIndex < count($this->_items) - 1 ? $this->_items[++$itemIndex] : null; $itemDateRange = new DateRange($item->StartDate(), $item->EndDate()); if ($previousItem != null) { if ($itemDateRange->Overlaps(new DateRange($previousItem->StartDate(), $previousItem->EndDate()))) { return true; } } if ($nextItem != null) { if ($itemDateRange->Overlaps(new DateRange($nextItem->StartDate(), $nextItem->EndDate()))) { return true; } } return false; }