protected function execute(InputInterface $input, OutputInterface $output)
 {
     $command = '/var/www/joies-de-supinfo/app/console ljds:publish';
     $cronDow = [WeekPart::WEEK_DAYS => '1-5', WeekPart::WEEK_END => '6-7'];
     $labels = [WeekPart::WEEK_DAYS => 'Week days', WeekPart::WEEK_END => 'Weekend'];
     $output->writeln('# Joies de SUPINFO');
     foreach ([WeekPart::WEEK_DAYS, WeekPart::WEEK_END] as $weekPart) {
         $output->writeln('# ' . $labels[$weekPart]);
         foreach (AutoPostHelper::getPublicationTimes($weekPart) as $job) {
             $hours = explode(':', $job)[0];
             $minutes = explode(':', $job)[1];
             $output->writeln($minutes . ' ' . $hours . ' * * ' . $cronDow[$weekPart] . ' ' . $command);
         }
         $output->writeln('');
     }
 }
 /**
  * Returns when the recently submitted gif will be published
  */
 public function getEstimatedPublicationDate()
 {
     $remainingGifs = count($this->findByGifState(GifState::ACCEPTED));
     $currentDate = new \DateTime();
     while ($remainingGifs >= 0) {
         $dow = intval($currentDate->format('w'));
         switch ($dow) {
             case 1:
             case 2:
             case 3:
             case 4:
             case 5:
                 // Week days
                 $remainingGifs -= count(AutoPostHelper::getPublicationTimes(WeekPart::WEEK_DAYS));
                 break;
             case 6:
             case 0:
                 // Weekend
                 $remainingGifs -= count(AutoPostHelper::getPublicationTimes(WeekPart::WEEK_END));
                 break;
         }
         $currentDate->modify('+1 day');
     }
     return $currentDate;
 }