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-05-23 00:45:40 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 68747470733a2f2f7777772e636f6465666163746f722e696f2f436f6e74656e742f6261646765732f41506c75732e737667

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

Status
Ano Novo ✔️
Dia Internacional da Mulher ✔️
Dia da Mentira ✔️
Dia do Índio ✔️
Tiradentes ✔️
Descobrimento do Brasil ✔️
Dia do Trabalhador ✔️
Dia da Abolição da Escravatura ✔️
Dia Mundial do Meio Ambiente ✔️
Dia dos Namorados ✔️
Dia de São João ✔️
Dia do Amigo ✔️
Dia dos Avós ✔️
Dia do Estudante ✔️
Dia do Folclore ✔️
Dia do Soldado ✔️
Independência do Brasil ✔️
Dia da Árvore ✔️
Dia Internacional da Paz ✔️
Dia das Crianças ✔️
Nossa Senhora Aparecida ✔️
Dia do Professor ✔️
Dia Nacional do Livro ✔️
Halloween ✔️
Finados ✔️
Proclamação da República ✔️
Dia da Bandeira ✔️
Dia Nacional da Consciência Negra ✔️
Dia Internacional dos Direitos Humanos ✔️
Véspera de Natal ✔️
Natal ✔️
Véspera de Ano Novo ✔️
Carnaval ✔️
Páscoa ✔️
Sexta-Feira Santa ✔️
Corpus Christ ✔️
Dia da Mães ✔️
Dia dos Pais ✔️
Dia do Servidor Público ✔️