public function overlaps(Period $period) { if ($this->abuts($period)) { return false; } return $this->startDate < $period->getEndDate() && $this->endDate > $period->getStartDate(); }