public function getArrayOfStartDates(CalendarReoccuranceInterface $reoccurance)
 {
     $dateArray = array();
     switch ($reoccurance->getPeriod()) {
         case CalendarReoccuranceInterface::FREQUENCY_DAY:
             $period = 'D';
             break;
         case CalendarReoccuranceInterface::FREQUENCY_WEEK:
             $period = 'W';
             break;
         case CalendarReoccuranceInterface::FREQUENCY_MONTH:
             $period = 'M';
             break;
         case CalendarReoccuranceInterface::FREQUENCY_YEAR:
             $period = 'Y';
             break;
     }
     $date = $reoccurance->getStartDate();
     if ($reoccurance->getStopMethod() === CalendarReoccuranceInterface::END_DATE) {
         while ($date <= $reoccurance->getEndDate()) {
             $interval = new \DateInterval("P" . $reoccurance->getIntervalBetween() . $period);
             $date = $date->add($interval);
             $cloneDate = clone $date;
             $dateArray[] = $cloneDate;
         }
     }
     if ($reoccurance->getStopMethod() === CalendarReoccuranceInterface::END_ITERATIONS) {
         for ($x = 0; $x <= $reoccurance->getIterations(); $x++) {
             $interval = new \DateInterval("P" . $reoccurance->getIntervalBetween() . $period);
             $date = $date->add($interval);
             $cloneDate = clone $date;
             $dateArray[] = $cloneDate;
         }
     }
     return $dateArray;
 }