/** * Get the holidays by region * * @param string $date date to check * * @param null|CGroups $group group, null = current * * @return array */ static function getCpHolidays($date, $group = null) { $subdivisionHoliday = array(); $pays = CAppUI::conf("ref_pays"); //no group, load current if (!$group) { $group = CGroups::loadCurrent(); } //no CP, abord if (!$group->cp) { return $subdivisionHoliday; } $year = CMbDT::transform("+0 DAY", $date, "%Y"); $paques = CMbDT::getEasterDate($date); switch ($pays) { // France case '1': return $subdivisionHoliday; break; // Switzerland // Switzerland case '2': $firstSundaySeptember = CMbDT::transform("next sunday", $year . "-09-00", "%Y-%m-%d"); $thirdSundaySeptember = CMbDT::transform("+2 WEEK", $firstSundaySeptember, "%Y-%m-%d"); $canton = substr($group->cp, 0, 2); switch ($canton) { // Vaud case '10': $subdivisionHoliday["{$year}-01-02"] = "Saint-Berchtold"; $subdivisionHoliday[CMbDT::transform("last friday", $paques, "%Y-%m-%d")] = "vendredi saint"; $subdivisionHoliday[CMbDT::transform("+1 DAY", $paques, "%Y-%m-%d")] = "lundi de paques"; $subdivisionHoliday[CMbDT::transform("+39 DAY", $paques, "%Y-%m-%d")] = "Ascension"; $subdivisionHoliday[CMbDT::transform("+50 DAY", $paques, "%Y-%m-%d")] = "lundi de pantecote"; $subdivisionHoliday[CMbDT::transform("+1 DAY", $thirdSundaySeptember, "%Y-%m-%d")] = "Lundi du Jeûne fédéral"; break; // Genève // Genève case '12': $subdivisionHoliday[CMbDT::transform("next thursday", $firstSundaySeptember, "%Y-%m-%d")] = "Jeûne Genevois"; $subdivisionHoliday[CMbDT::transform("last friday", $paques, "%Y-%m-%d")] = "vendredi saint"; $subdivisionHoliday[CMbDT::transform("+1 DAY", $paques, "%Y-%m-%d")] = "lundi de paques"; $subdivisionHoliday[CMbDT::transform("+39 DAY", $paques, "%Y-%m-%d")] = "Ascension"; $subdivisionHoliday[CMbDT::transform("+50 DAY", $paques, "%Y-%m-%d")] = "lundi de pantecote"; $subdivisionHoliday["{$year}-12-31"] = "fete du travail"; break; default: return $subdivisionHoliday; break; } break; default: return $subdivisionHoliday; break; } return $subdivisionHoliday; }