Ir para conteúdo
Fórum Script Brasil
  • 0

Previsão das datas dos feriados móveis


Beraldo

Pergunta

As datas dos feriados móveis são baseadas no dia da Páscoa, que pode ser previsto por meio do algorítimo de Gauss, demonstrado neste link:

http://www.inf.ufrgs.br/~cabral/Pascoa.html

Porém, no PHP, podese fazer isso de uma forma mais simples. Usando a função esater_date(), obtemos o timestamp refrente ao dia da Páscoa de um determinado ano.

int easter_date ([ int $ano ] )

Retorna a data do sistema UNIX correspondente à meia-noite da Páscoa do ano especificado. Se nenhum ano tiver sido especificado, será assumido o ano atual.

À partir da versão 4.3.0 PHP, e se omitido o parâmetro ano , o padrão assumido é o ano atual de acordo com a hora local.

Exemplo:

//data da Páscoa em 2008
echo date("d/m/Y", easter_date(2008));
Os feriados baseados na data da Páscoa são:
  • Carnaval -> 47 dias antes da Páscoa
  • Paixão de Cristo (Sexta-feira Santa) -> 2 dias antes da Páscoa
  • Corpus Christi -> 60 dias depois da Páscoa
Logo:
//array com todas as datas
$datas = array();

//Páscoa
$datas['pascoa'] = easter_date(2008);

//Carnaval
$datas['carnaval'] = $datas['pascoa'] - 47 * 86400;

//Corpus Christi
$datas['corpus_christi'] = $datas['pascoa'] + 60 * 86400;

//Paixão de Cristo
$datas['paixao_de_cristo'] = $datas['pascoa'] - 2 * 86400;

/*
   Como o array $datas contém timestamps, precisamos converter esses valores para o formato dia/mês/ano.
   Para isso, aplicaremos uma simples função aos elementos do array, usando array_map().
*/

function converter($time)
{
        return date("d/m/Y", $time);
}

print_r(array_map("converter", $datas));

OBS: 86400 = 24 horas convertidas em segundos

Abraços,

Beraldo

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...