Forked from guiliredu/feriados-brasileiros-em-php.php
Last active
December 2, 2020 18:51
-
-
Save herisonAssuncao/e68906f40cdc654e095ff5bc90f75571 to your computer and use it in GitHub Desktop.
Retorna um array com todos os feriados nacionais por ano.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
use Exception; | |
use Throwable; | |
class FeriadoNacionalService | |
{ | |
/** | |
* Busca todos os feriados nacionais por ano. | |
* | |
* @param integer $ano | |
* @return array | |
*/ | |
public static function buscaTodosPorAno(int $ano = null): array | |
{ | |
try { | |
$ano = $ano ? $ano : (int)(date('Y')); | |
$pascoa = easter_date($ano); // Limite de 1970 ou após 2037 da easter_date PHP consulta http://www.php.net/manual/pt_BR/function.easter-date.php | |
$diaPascoa = date('j', $pascoa); | |
$mesPascoa = date('n', $pascoa); | |
$anoPascoa = date('Y', $pascoa); | |
$feriados = array( | |
// Datas Fixas dos feriados Nacionais Basileiros | |
[ | |
"data" => mktime(0, 0, 0, 1, 1, $ano), | |
'descricao' => 'Confraternização Universal - Lei nº 662, de 06/04/49' | |
], | |
[ | |
'data' => mktime(0, 0, 0, 4, 21, $ano), | |
'descricao' => 'Tiradentes - Lei nº 662, de 06/04/49' | |
], | |
[ | |
'data' => mktime(0, 0, 0, 5, 1, $ano), | |
'descricao' => 'Dia do Trabalhador - Lei nº 662, de 06/04/49' | |
], | |
[ | |
'data' => mktime(0, 0, 0, 9, 7, $ano), | |
'descricao' => 'Dia da Independência - Lei nº 662, de 06/04/49' | |
], | |
[ | |
'data' => mktime(0, 0, 0, 10, 12, $ano), | |
'descricao' => 'N. S. Aparecida - Lei nº 6802, de 30/06/80' | |
], | |
[ | |
'data' => mktime(0, 0, 0, 11, 2, $ano), | |
'descricao' => 'Todos os santos - Lei nº 662, de 06/04/49' | |
], | |
[ | |
'data' => mktime(0, 0, 0, 11, 15, $ano), | |
'descricao' => 'Proclamação da republica - Lei nº 662, de 06/04/49' | |
], | |
[ | |
'data' => mktime(0, 0, 0, 12, 25, $ano), | |
'descricao' => 'Natal - Lei nº 662, de 06/04/49' | |
], | |
// Essas Datas dependem diretamente da data de Páscoa | |
[ | |
'data' => mktime(0, 0, 0, $mesPascoa, $diaPascoa - 48, $anoPascoa), | |
'descricao' => '2º Feriado Carnaval' | |
], | |
[ | |
'data' => mktime(0, 0, 0, $mesPascoa, $diaPascoa - 47, $anoPascoa), | |
'descricao' => '3º Feriado Carnaval' | |
], | |
[ | |
'data' => mktime(0, 0, 0, $mesPascoa, $diaPascoa - 2, $anoPascoa), | |
'descricao' => '6ºfeira Santa' | |
], | |
[ | |
'data' => mktime(0, 0, 0, $mesPascoa, $diaPascoa, $anoPascoa), | |
'descricao' => 'Páscoa' | |
], | |
[ | |
'data' => mktime(0, 0, 0, $mesPascoa, $diaPascoa + 60, $anoPascoa), | |
'descricao' => 'Corpus Christi' | |
] | |
); | |
return array_sort($feriados, 'data', SORT_ASC); | |
} catch (Throwable $throwable) { | |
throw new Exception($throwable->getMessage()); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment