Abaixo uma função que calcula uma lista de feriados nacionais do ano corrente até 2037. A mágica dos feriados dinâmicos, que tem como base a páscoa, é feita com a função easter_date() do PHP.
<?
function dias_feriados($ano = null){
if ($ano === null){
$ano = intval(date('Y'));
}
$pascoa = easter_date($ano); // Limite entre 1970 a 2037 conforme
http://www.php.net/manual/pt_BR/function.easter-date.php
$dia_pascoa = date('j', $pascoa);
$mes_pascoa = date('n', $pascoa);
$ano_pascoa = date('Y', $pascoa);
$feriados = array(
// Datas Fixas dos feriados brasileiros
'Ano Novo' => mktime(0, 0, 0, 1, 1, $ano), // Confraternização Universal - Lei nº 662, de 06/04/49
'Tiradentes' => mktime(0, 0, 0, 4, 21, $ano), // Tiradentes - Lei nº 662, de 06/04/49
'Dia do Trabalhador' => mktime(0, 0, 0, 5, 1, $ano), // Dia do Trabalhador - Lei nº 662, de 06/04/49
'Independência do Brasil' => mktime(0, 0, 0, 9, 7, $ano), // Dia da Independência - Lei nº 662, de 06/04/49
'Nossa Senhora Aparecida' => mktime(0, 0, 0, 10, 12, $ano), // N. S. Aparecida - Lei nº 6802, de 30/06/80
'Finados' => mktime(0, 0, 0, 11, 2, $ano), // Todos os santos - Lei nº 662, de 06/04/49
'Proclamação da República' => mktime(0, 0, 0, 11, 15, $ano), // Proclamação da republica - Lei nº 662, de 06/04/49
'Natal' => mktime(0, 0, 0, 12, 25, $ano), // Natal - Lei nº 662, de 06/04/49
// Essas datas dependem da páscoa
'Segunda de Carnaval' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa - 48, $ano_pascoa),//2ºferia Carnaval
'Terça de Carnaval' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa - 47, $ano_pascoa),//3ºferia Carnaval
'Sexta-feira da Paixão' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa - 2 , $ano_pascoa),//6ºfeira Santa
'Páscoa' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa , $ano_pascoa),//Pascoa
'Corpus Christi' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa + 60, $ano_pascoa),//Corpus Cirist
);
asort($feriados);
return $feriados;
}
$ano_=date("Y"); //ano corrente
for($i=$ano_; $i <= 2037; $i++){
echo "=========== ANO $i ===========\n";
foreach(dias_feriados($i) as $descricao => $data){
echo date("d-m-Y",$data)." => $descricao\n";
}
echo "\n";
}
?> |
<?
function dias_feriados($ano = null){
if ($ano === null){
$ano = intval(date('Y'));
}
$pascoa = easter_date($ano); // Limite entre 1970 a 2037 conforme
http://www.php.net/manual/pt_BR/function.easter-date.php
$dia_pascoa = date('j', $pascoa);
$mes_pascoa = date('n', $pascoa);
$ano_pascoa = date('Y', $pascoa);
$feriados = array(
// Datas Fixas dos feriados brasileiros
'Ano Novo' => mktime(0, 0, 0, 1, 1, $ano), // Confraternização Universal - Lei nº 662, de 06/04/49
'Tiradentes' => mktime(0, 0, 0, 4, 21, $ano), // Tiradentes - Lei nº 662, de 06/04/49
'Dia do Trabalhador' => mktime(0, 0, 0, 5, 1, $ano), // Dia do Trabalhador - Lei nº 662, de 06/04/49
'Independência do Brasil' => mktime(0, 0, 0, 9, 7, $ano), // Dia da Independência - Lei nº 662, de 06/04/49
'Nossa Senhora Aparecida' => mktime(0, 0, 0, 10, 12, $ano), // N. S. Aparecida - Lei nº 6802, de 30/06/80
'Finados' => mktime(0, 0, 0, 11, 2, $ano), // Todos os santos - Lei nº 662, de 06/04/49
'Proclamação da República' => mktime(0, 0, 0, 11, 15, $ano), // Proclamação da republica - Lei nº 662, de 06/04/49
'Natal' => mktime(0, 0, 0, 12, 25, $ano), // Natal - Lei nº 662, de 06/04/49
// Essas datas dependem da páscoa
'Segunda de Carnaval' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa - 48, $ano_pascoa),//2ºferia Carnaval
'Terça de Carnaval' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa - 47, $ano_pascoa),//3ºferia Carnaval
'Sexta-feira da Paixão' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa - 2 , $ano_pascoa),//6ºfeira Santa
'Páscoa' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa , $ano_pascoa),//Pascoa
'Corpus Christi' => mktime(0, 0, 0, $mes_pascoa, $dia_pascoa + 60, $ano_pascoa),//Corpus Cirist
);
asort($feriados);
return $feriados;
}
$ano_=date("Y"); //ano corrente
for($i=$ano_; $i <= 2037; $i++){
echo "=========== ANO $i ===========\n";
foreach(dias_feriados($i) as $descricao => $data){
echo date("d-m-Y",$data)." => $descricao\n";
}
echo "\n";
}
?>
Peguei a base do código de https://www.codigofonte.com.br/codigos/funcao-que-calcula-os-feriados-brasileiros-em-php