easter_days

(PHP 4, PHP 5)

easter_days Obtém o número de dias entre 21 de Março e o dia da Páscoa em determinado ano.

Description

int easter_days ([ int $ano [, int $método ]] )

Retorna o número de dias entre 21 de Março e o dia da Páscoa em determinado ano. Se nenhum ano tiver sido especificado, será assumido o ano atual.

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

O parâmetro método está disponível à partir da versão 4.3.0 do PHP e perimite calcular as datas da Páscoa baseadas no calendário Gregoriano durante os anos 1582 - 1752 quando a constante CAL_EASTER_ROMAN está ligada. Veja as constantes de calendário para obter outras constantes válidas.

Ao invés de usar a função easter_date(), você pode usar esta função para calcular a Páscoa em anos que estão fora da escala de datas do sistema UNIX (i.e. antes de 1970 ou após 2037).

Exemplo #1 easter_days() exemplo

<?php

echo easter_days (1999);        // 14, i.e. April 4
echo easter_days (1492);        // 32, i.e. April 22
echo easter_days (1913);        //  2, i.e. March 23

?>

A data da Páscoa foi definida pelo Conselho de Nicaea em DC325 como sendo o primeiro domingo após a primeira lua cheia que cai no equinócio da primavera ou depois dele. O equinócio geralmente cai perto do 21º de Março, logo, o cálculo resume-se à determinar a data da lua cheia e a data do seguinte domingo. O algoritmo usado aqui foi feito no ano 532 por Dionysius Exiguus. De acordo com o calendário "Julian" (para anos anterioris à 1753) um simples ciclo de 19-anos é usado para seguir as fases da lua. De acordo com o Calendário Gregoriano (para antes após 1753 - planejado por Clavius e por Lilius, e feito por Pope Gregory XIII em Outubro de 1582, e na Grã Bretanha e suas colônias em Setembro de 1752), duas correções fatoriais foram adicionadas para fazer o ciclo mais exato.

(O código é baseado em um programa feito em C por Simon Kershaw, <webmaster@ely.anglican.org>)

Veja também easter_date().

add a note add a note

User Contributed Notes 2 notes

up
0
ian at eiloart dot com-NOSPAM
12 years ago
Also, be aware that the eastern orthodox churches sometimes have different dates for easter. See, for example <http://webexhibits.org/calendars/calendar-christian-easter.html>. And note that the dates of easter a subject to change,  for example, the churches might some day decide to unify the dates.
up
-1
martin at diers dot cc
12 years ago
This function appears to be Britanno-centric. When attempting to calculate the Gregorian date for Easter for years prior to 1753, the function returns the number or days since March 21st in the Julian Calendar, even though the Gregorian system was in effect in the rest of Europe since 1582. If you wish to calculate the date of easter for a Gregorian date from 1582 onward, use the following function, which duplicates the funcionality of easter_days:

<?php
   
function easter_days2($year) {
       
#First calculate the date of easter using Delambre's algorithm.
       
$a = $year % 19;
       
$b = floor($year / 100);
       
$c = $year % 100;
       
$d = floor($b / 4);
       
$e = $b % 4;
       
$f = floor(($b + 8) / 25);
       
$g = floor(($b - $f + 1) / 3);
       
$h = (19 * $a + $b - $d - $g + 15) % 30;
       
$i = floor($c / 4);
       
$k = $c % 4;
       
$l = (32 + 2 * $e + 2 * $i - $h - $k) % 7;
       
$m = floor(($a + 11 * $h + 22 * $l) / 451);
       
$n = ($h + $l - 7 * $m + 114);
       
$month = floor($n / 31);
       
$day = $n % 31 + 1;

       
#Return the difference between the JulianDayCount for easter and March 21'st
        #of the same year, in order to duplicate the functionality of the easter_days function
       
return GregorianToJD($month, $day, $year) - GregorianToJD(3,21,$year);
    }
?>
To Top