gs-nasc/brazil-holiday

PHP Package thats verify if date is or not a holiday.

1.0.4 2021-01-28 19:21 UTC

This package is auto-updated.

Last update: 2024-11-23 02:01:48 UTC


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!

Bugs Code Smells Maintainability Rating Security Rating Reliability Rating

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.

Tabela de Feriados Disponíveis