gs-nasc / brazil-holiday
PHP Package thats verify if date is or not a holiday.
README
Brazil Holiday é uma biblioteca PHP que diz se um dia é ou não feriado, por enquanto temos só os feriados mais importantes mas estamos em constante atualização e sempre adicionando novos feriados!
Começando
Instalando
A biblioteca pode ser instalada pelo composer (e é o mais recomendado), o comando para instalar é este abaixo:
composer require gs-nasc/brazil-holiday
via Packagist
Implementando
A biblioteca é de fácil implementação e utilização abaixo estão códigos de exemplo:
Obs. lembre-se de carregar o autoload do composer
Qualquer data
use BrazilHoliday\Holiday; $holiday = new Holiday(); // Aqui carregamos o ano que vamos usar para encontrarmos o feriado // Somente feriados que não são dias úteis (Ex: Natal) $holiday->load(2021); // Todos os feriados ( Ex: Dia da Bandeira ) $holiday->load(2021, "all"); // troque 2021 pelo ano que irá utilizar // No lugar de 01/01/2021 coloque a data que você quer //saber se é feriado, siga o padrão que está ali! $date = DateTime::createFromFormat('d/m/Y', '01/01/2021'); // Finalmente verificamos se é ou não feriado $feriado = $holiday->isHoliday($date); echo ($feriado) ? "Feriado " . $feriado->title : "Não é feriado"; // OU if($feriado) { $foo = "Feriado " . $feriado->title; }else{ $foo = "Não é feriado"; } echo $foo;
Hoje
use BrazilHoliday\Holiday; $holiday = new Holiday(); // Aqui carregamos o ano que vamos usar para encontrarmos o feriado // Somente feriados que não são dias úteis (Ex: Natal) $holiday->load(2021); // Todos os feriados ( Ex: Dia da Bandeira ) $holiday->load(2021, "all"); // troque 2021 pelo ano que irá utilizar // Finalmente verificamos se é ou não feriado $feriado = $holiday->todayHoliday(); echo ($feriado) ? "Feriado " . $feriado->title : "Não é feriado"; // OU if($feriado) { $foo = "Feriado " . $feriado->title; }else{ $foo = "Não é feriado"; } echo $foo;
Amanhã
use BrazilHoliday\Holiday; $holiday = new Holiday(); // Aqui carregamos o ano que vamos usar para encontrarmos o feriado // Somente feriados que não são dias úteis (Ex: Natal) $holiday->load(2021); // Todos os feriados ( Ex: Dia da Bandeira ) $holiday->load(2021, "all"); // troque 2021 pelo ano que irá utilizar // Finalmente verificamos se é ou não feriado $feriado = $holiday->tomorrowHoliday(); echo ($feriado) ? "Feriado " . $feriado->title : "Não é feriado"; // OU if($feriado) { $foo = "Feriado " . $feriado->title; }else{ $foo = "Não é feriado"; } echo $foo;
Ontem
use BrazilHoliday\Holiday; $holiday = new Holiday(); // Aqui carregamos o ano que vamos usar para encontrarmos o feriado // Somente feriados que não são dias úteis (Ex: Natal) $holiday->load(2021); // Todos os feriados ( Ex: Dia da Bandeira ) $holiday->load(2021, "all"); // troque 2021 pelo ano que irá utilizar // Finalmente verificamos se é ou não feriado $feriado = $holiday->yesterdayHoliday(); echo ($feriado) ? "Feriado " . $feriado->title : "Não é feriado"; // OU if($feriado) { $foo = "Feriado " . $feriado->title; }else{ $foo = "Não é feriado"; } echo $foo;
Quando é feriado a biblioteca retorna um objeto com os seguintes atributos:
- title (Título do feriado. Ex: Ano Novo)
- date (Data do feriado. Ex: 01/01/2021)
- type (Tipo do feriado. Ex: Feriado Nacional)
Quando não é feriado a biblioteca retorna false
Como ajudar?
Se você está sentindo falta de algum feriado ou quer arrumar algum bug que encontrou siga os passos abaixo:
Adicionar novo feriado
Feriado Fixo
Para adicionar um novo feriado fixo (Ex: Natal) é só fazer um fork deste respositório e editar o arquivo dates.json que se econtra na pasta src/
seguindo seus padrões, quando terminar é só fazer um Pull Request que eu analizarei o pedido e caso se enquadre na Biblioteca adicionarei no projeto.
Feriado Móvel
Para adicionar um novo feriado móvel basta abrir uma Issue dizendo qual o feriado que eu buscarei um método de adiciona-lo no projeto
Arrumar Bug
Caso queira arrumar algum bug é só fazer fork do projeto, arrumar o bug e fazer testes para ver se tudo continua funcionando, caso tudo funcione fazer um Pull Request para ser implementado.