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));
Pergunta
Beraldo
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.
Exemplo:
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: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
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.