easter_days

(PHP 4, PHP 5, PHP 7)

easter_days Получение количества дней между 21 марта и Пасхой в заданном году

Описание

int easter_days ([ int $year = date("Y") [, int $method = CAL_EASTER_DEFAULT ]] )

Возвращает количество дней между 21 марта и Пасхой в заданном году. Если год не указан, расчет будет произведен для текущего года.

Эту функцию можно использовать вместо easter_date() для расчета даты Пасхи для дат, выходящих за рамки диапазона меток времени Unix (с 1970 по 2037 годы).

Дата Пасхального дня была введена Консулом Никеи в 325 году до н.э. Это первое воскресенье, следующее за первым полнолунием после весеннего равноденствия. Днем весеннего равноденствия принято считать 21 марта, так что расчет дня Пасхи сводится к определению даты полнолуния и следующего за ней воскресенья. Используемый здесь алгоритм введен Дионисием Малым в 532 году. В Юлианском летоисчислении (до 1753 года) для отслеживания фаз луны использовался простой 19-летний цикл. В Грегорианском календаре (годы после 1753 - разработан Христофором Клавиусом и Алоизием Лилиусом и введен Папой Григорием XIII в октябре 1582г., а в Великобритании и ее колониях в сентябре 1752г.) было добавлено 2 поправочных коэффициента увеличивающих точность расчета дат.

Список параметров

year

Год, положительное число. Если не задан, используется текущий год в соответствии с локальным временем сервера.

method

Позволяет расcчитать Пасхальные даты, основываясь на Григорианском календаре для 1582 - 1752 годов, если установить CAL_EASTER_ROMAN. См. список констант календаря, чтобы узнать о всех допустимых константах.

Возвращаемые значения

Количество дней между 21 марта и Пасхальным воскресеньем в заданном году year.

Примеры

Пример #1 Пример использования easter_days()

<?php

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

?>

Смотрите также

  • easter_date() - Метка времени Unix соответствующая полуночи на Пасху в заданном году

Коментарии

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.
2001-11-19 13:43:50
http://php5.kiev.ua/manual/ru/function.easter-days.html
This function returns an array of timestamp corresponding to Dutch National holidays. Liberation Day (Bevrijdingsdag) is added as a National holiday once every five years (2000, 2005, 2010, ...).

<?php
function getHolidays($year null) {
    if (
$year === null) {
       
$year intval(date('Y'));
    }
   
   
$easterDate  easter_date($year);
   
$easterDay   date('j'$easterDate);
   
$easterMonth date('n'$easterDate);
   
$easterYear   date('Y'$easterDate);
 
   
$holidays = array(
       
// Nieuwjaarsdag
       
mktime(00011$year), 
       
// 1e Kerstdag
       
mktime(0001225$year), 
       
// 2e Kerstdag
       
mktime(0001226$year)
    );
     
   
// Bevrijdingsdag
   
if (($year 5) == 0) {
       
$holidays[] = mktime(00055$year); 
    }
   
   
// Koninginnedag (< 2014) of Koningsdag (>= 2014). 
    // Verplaats naar zaterdag als het valt op zondag.
   
if ($year <= 2013) { // Koninginnedag <= 2013
       
if (date('w'mktime(000430$year)) == 0) { // Op zondag?
           
$holidays[] = mktime(000429$year);  // Verplaats naar zaterdag
       
} else {
           
$holidays[] = mktime(000430$year);  // Koninginnedag
       
}
    } else { 
// Koningsdag > 2014
       
if (date('w'mktime(000427$year)) == 0) { // Op zondag?
           
$holidays[] = mktime(000426$year);  // Verplaats naar zaterdag
       
} else {
           
$holidays[] = mktime(000427$year);  // Koningsdag
       
}
    }
   
   
// Onderstaande dagen hebben een datum afhankelijk van Pasen
    // Goede Vrijdag (= pasen - 2)
   
$holidays[] = strtotime('-2 days'mktime(000$easterMonth$easterDay$easterYear));
   
// 1e Paasdag
   
$holidays[] = mktime(000$easterMonth$easterDay$easterYear);
   
// 2e Paasdag (= pasen +1)
   
$holidays[] = strtotime('+1 days'mktime(000$easterMonth$easterDay$easterYear));
   
// Hemelvaartsdag (= pasen + 39)
   
$holidays[] = strtotime('+39 days'mktime(000$easterMonth$easterDay$easterYear));
   
// 1e Pinksterdag (= pasen + 49)
   
$holidays[] = strtotime('+49 days'mktime(000$easterMonth$easterDay$easterYear));
   
// 2e Pinksterdag (= pasen + 50)
   
$holidays[] = strtotime('+50 days'mktime(000$easterMonth$easterDay$easterYear));

   
sort($holidays);
 
    return 
$holidays;
}

$holidays getHolidays(2014);

foreach (
$holidays as $holiday) {
    echo 
date('d-M-Y'$holiday) . '<br>';
}
?>
2015-06-01 18:20:31
http://php5.kiev.ua/manual/ru/function.easter-days.html

    Поддержать сайт на родительском проекте КГБ