/** * get a list of year week days according to the BYMONTH rule * * @access protected */ protected function getYearWeekDays(ilDateTime $seed) { $time = microtime(true); $year_days = array(); $current_year = $seed->get(IL_CAL_FKT_DATE, 'Y'); $start = new ilDate($current_year . '-01-01', IL_CAL_DATE); $offset = $start->get(IL_CAL_FKT_DATE, 'w'); $days = array(0 => 'SU', 1 => 'MO', 2 => 'TU', 3 => 'WE', 4 => 'TH', 5 => 'FR', 6 => 'SA'); for ($i = 0; $i < $offset; $i++) { next($days); } $num_days = ilCalendarUtil::_isLeapYear($current_year) ? 366 : 365; for ($i = 0; $i < $num_days; $i++) { if (($current_day = current($days)) == false) { $current_day = reset($days); } $year_days[$current_day][] = $i; next($days); } return $year_days; }