listeJourFerier[$jour['nom']] = ["date"=> new DateTime((new DateTime())->format("Y")."-".$jour['mois']."-".$jour['jour']), "actif" => $jour['actif']]; }elseif ($jour['regle'] == "paque"){ $paque =$this->paque(intval((new DateTime())->format("Y"))); $date = $paque->modify("+".$jour['jour']." day"); $this->listeJourFerier[$jour['nom']] = ["date"=> $date, "actif" => $jour['actif']]; } } } public function getListeJourFerier() { $liste = []; foreach ($this->listeJourFerier as $key=>$jour) $liste[$key] = $jour["date"]; return $liste; } public function getListeJourFerierActif() { $liste = []; foreach ($this->listeJourFerier as $key=>$jour) if ($jour['actif'] == 'actif') $liste[$key] = $jour["date"]; return $liste; } private function paque(int $year): \DateTime { $k = intdiv($year, 100); $m = 15 + intdiv((3 * $k + 3), 4) - intdiv((8 * $k + 13), 25); $s = 2 - intdiv((3 * $k + 3), 4); $a = $year % 19; $d = (19 * $a + $m) % 30; $r = intdiv(($d + intdiv($a, 11)), 29); $og = 21 + $d - $r ; $sz = 7 - ($year + intdiv($year, 4) + $s) % 7; $oe = 7 - ($og - $sz) % 7; $os = $og + $oe; $result = new \DateTime(sprintf('%04s-03-01', $year)); $result->add( \DateInterval::createFromDateString( sprintf('%s days', $os-1) ) ); return $result; } }