Esempio n. 1
0
 /**
  * @param array|Traversable $weekdays
  * @param string $separator
  * @param int|string $format
  * @param string $locale
  * @param int|string $firstDayOfWeek
  * @return string
  */
 public function render($weekdays, $separator = null, $format = null, $locale = null, $firstDayOfWeek = null)
 {
     return CalendarUtils::implodeWeekdays($weekdays, $separator ?: $this->getSeparator(), $format ?: $this->getFormat(), $locale ?: $this->getLocale(), $firstDayOfWeek ?: $this->getFirstDayOfWeek());
 }
Esempio n. 2
0
 /**
  * @param array|Traversable $holidays
  * @param string $separator
  * @param string $format
  * @param string $locale
  * @return string
  */
 public function render($holidays, $separator = null, $format = null, $locale = null)
 {
     return CalendarUtils::implodeHolidays($holidays, $separator ?: $this->getSeparator(), $format ?: $this->getFormat(), $locale ?: $this->getLocale());
 }
Esempio n. 3
0
 /**
  * {@inheritDoc}
  *
  * @param array<HolidayRuleInterface>|Traversable $holidayRules
  * @param int $filter
  */
 public static function getWeekendDays($startDate, $endDate, array $weekend, $holidayRules = [], $filter = self::FILTER_WEEKEND_ALL)
 {
     $days = parent::getWeekendDays($startDate, $endDate, $weekend);
     if (!$holidayRules || $filter == static::FILTER_WEEKEND_ALL) {
         return $days;
     }
     $holidays = static::getHolidays($holidayRules, $startDate, $endDate, $weekend, static::FILTER_HOLIDAY_DAY_OFF | static::FILTER_HOLIDAY_WEEKDAY);
     $transferredWeekendDays = [];
     /* @var $subHoliday HolidayInterface */
     foreach ($holidays as $holiday) {
         foreach ($holiday as $subHoliday) {
             if ($subHoliday->getRule() instanceof TransferredRuleInterface) {
                 $transferredWeekendDays[] = $subHoliday->getRule()->getWeekendDay()->format('Y-m-d');
                 continue 2;
             }
         }
     }
     if (!$transferredWeekendDays) {
         return $days;
     }
     $flippedTransferredWeekendDays = array_flip($transferredWeekendDays);
     if ($filter & static::WEEKEND_TRANSFERRED) {
         $days = array_intersect_key($days, $flippedTransferredWeekendDays);
     }
     if ($filter & static::WEEKEND_DAY_OFF) {
         $days = array_diff_key($days, $flippedTransferredWeekendDays);
     }
     return $days;
 }