/**
 * @param DateTime $episodeStartDateTime
 * @param $segmentTime
 * @return DateTime
 */
function addDateToSegmentStartTime($episodeStartDateTime, $segmentTime)
{
    $dateToUse = $episodeStartDateTime->format("Y-m-d");
    $episodeStartTimeString = $episodeStartDateTime->format("H:i:s");
    if (!TimeValidator::isTimeInValidFormat($segmentTime)) {
        $errorsContainer = new AddSegmentsErrors();
        $errorsContainer->markStartTimeInvalidFormat();
        outputErrorResponse($errorsContainer->getAllErrors());
    }
    if (strtotime($segmentTime) < strtotime($episodeStartTimeString)) {
        $dayAfterEpisodeStartDateTime = clone $episodeStartDateTime;
        $dayAfterEpisodeStartDateTime->add(new DateInterval('P1D'));
        $dateToUse = $dayAfterEpisodeStartDateTime->format("Y-m-d");
    }
    $segmentTimeString = $dateToUse . " " . $segmentTime;
    $segmentDateTime = new DateTime($segmentTimeString, new DateTimeZone('America/Montreal'));
    return $segmentDateTime;
}
 /**
  * @param AddSegmentsErrors $errors
  */
 private function isAdNumberValid($errors)
 {
     $adNumber = $this->segment->getAdNumber();
     if (!ValidatorUtility::doesFieldExist($adNumber) || !ValidatorUtility::isInteger($adNumber)) {
         $errors->markAdNumberMissing();
     }
 }