Piccolo script PHP che permette di calcolare le date delle festività italiane, completamente personalizzabile come vedremo nel codice.
Giorni festivi anno: 2024
Lunedì: 01-01-2024
Capodanno
Sabato: 06-01-2024
Epifania
Lunedì: 01-04-2024
Pasquetta
Giovedì: 25-04-2024
Liberazione
Mercoledì: 01-05-2024
Festa Lavoratori
Domenica: 02-06-2024
Festa della Repubblica
Giovedì: 15-08-2024
Ferragosto
Venerdì: 01-11-2024
Tutti Santi
Domenica: 08-12-2024
Immacolata
Mercoledì: 25-12-2024
Natale
Giovedì: 26-12-2024
St. Stefano
Codice PHP:
<?php
//PRENDO IN INPUT L'ANNO DA ELABORARE.
//SE VUOTO PRENDO L'ANNO IN CORSO
$anno_input=$_GET['anno_in']!=''?$_GET['anno_in']:date("Y");
//FUNZIONE PER LA RICERCA DI UNA DATA NELLA LISTA DELLE FESTIVITA'
function inFestivita($data, $dateFestivi){
foreach($dateFestivi as $d=>$v){
if($d==$data)
return true;
}
return false;
}
//INIZIALIZZIAMO LE FESTIVITA' CON LA LORO ETICHETTA.
$feste = Array(
"01-01"=>"Capodanno",
"06-01"=>"Epifania",
"25-04"=>"Liberazione",
"01-05"=>"Festa Lavoratori",
"02-06"=>"Festa della Repubblica",
"15-08"=>"Ferragosto",
"01-11"=>"Tutti Santi",
"08-12"=>"Immacolata",
"25-12"=>"Natale",
"26-12"=>"St. Stefano");
$giorni = array('Domenica','Lunedi','Martedi','Mercoledi','Giovedi','Venerdi','Sabato');
//ARRAY FINALE CON LE DATE DEI FESTIVI
$festivita=array();
$start=strtotime("$anno_input-01-01");
$stop=strtotime("$anno_input-12-31");
$day=$start;
while($day <= $stop) {
list($ita_date,$confronto_festivo,$anno,$giorno_settimana)=explode('__',date('d-m-Y__d-m__Y__w',$day));
//SE GIORNO FESTIVO LO INSERISCO NELLA NOSTRA LISTA.
if (inFestivita($confronto_festivo,$feste)) {
$festivita[]=$giorni[$giorno_settimana] . ": " .$ita_date;
$etichette[$giorni[$giorno_settimana] . ": " .$ita_date]=$feste[$confronto_festivo];
} else {
//CONTROLLO CHE NON SIA PASQUETTA.
$march21=date("$anno-03-21");
$gPasquetta=easter_days($anno)+1;
$dataPasquetta = date("d-m-Y",strtotime(date("Y-m-d", strtotime($march21)) . " +$gPasquetta day"));
if($ita_date==$dataPasquetta) {
$festivita[]=$giorni[1] . ": " .$ita_date;
$etichette[$giorni[1] . ": " .$ita_date]="Pasquetta";
}
}
//VADO AVANTI DI UN GIORNO
$day+=86400;
}
//STAMPO I GIORNI FESTIVI IN UNA TABELLA
echo "Giorni festivi anno: " . htmlentities($anno_input) . "<br />";
echo "<table>";
foreach($festivita as $giorno){
echo "<tr><td>$giorno</td><td>$etichette[$giorno]</td></tr>";
}
echo "</table>";
?>