Mid-Atlantic Developer Conference - Call for Speakers

easter_days

(PHP 4, PHP 5, PHP 7)

easter_daysVerilen yıl için Paskalya zamanına, 21 Marttan sonraki kalan gün sayısını verir.

Açıklama

int easter_days ([ int $yil [, int $yontem = CAL_EASTER_DEFAULT ]] )

Verilen yıl için Paskalya zamanına, 21 Marttan sonraki kalan gün sayısını verir. Yıl belirtilmezse öntanımlı olarak içinde bulunulan yıl alınır.

Bu işlev Unix zaman damgasının dışına düşen yıllarda (1970'den önce, 2037'den sonra), Paskalya gününü hesaplamak için easter_date() işlevi yerine kullanılabilir.

Paskalya günü, ilk olarak M.S. 325 yılında İznik Konseyi tarafından, İlk dolunaydan veya Bahar ılımından (ekinoks) sonraki ilk pazar günü olarak tanımlanmıştır. Ilımın daima 21 Mart tarihine rastladığı varsayılır ve hesaplama dolunayın ve sonraki pazar gününün hesaplanmasına indirgenir. Kullanılan algoritma Dionysius Exiguus tarafından 532 yılında tanıtıldı. Jülyen takvimi döneminde (1753'den önceki yıllar) ayın evrelerini takip etmek için basit 19 yıllık çevrim kullanıldı. Gregoryen takvimi döneminde (1753'den sonraki yıllar - Clavius ve Lilius tarafından hazırlandı ve XIII Papa Gregory tarafından Ekim 1582'de tanıtıldı, Eylül 1752'de Britanya ve kolonilerine yayıldı) çevrimin daha doğru olması için 2 düzeltme değişkeni eklendi.

(Simon Kershaw tarafından yazılan C programı temel alınmıştır, <webmaster at ely.anglican dot org>)

Değiştirgeler

yil

Pozitif sayı olarak yıl

yontem

CAL_EASTER_ROMAN sabiti verildiği zaman 1582 - 1752 yılları için Gregoryen takvimi temel alınarak hesaplama yapar. Diğer sabitler için takvim sabitleri adresine bakınız.

Dönen Değerler

Verilen yil değiştirgesi için Paskalya zamanına, 21 Marttan sonraki kalan gün sayısını verir.

Sürüm Bilgisi

Sürüm: Açıklama
4.3.0 sürümünden beri yil değiştirgesi seçimliktir, ihmal edilirse yerel zamana göre içinde bulunulan yıla eşittir.
4.3.0 sürümünden beri yontem değiştirgesi eklenmiştir.

Örnekler

Örnek 1 easter_days() örneği

<?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

?>

Ayrıca Bakınız

  • easter_date() - Verilen yıl için paskalya gece yarısının unix zaman damgasını döner

add a note add a note

User Contributed Notes 4 notes

up
1
trillian at vollbio dot de
1 year ago
// example for easter_date() replacement:
function my_easter_date($year) {
  return strtotime(
    '+' . easter_days($year) . ' day',
    mktime(0, 0, 0, 3, 21, $year)
  );
}

// test
echo date('Y-m-d', my_easter_date(2016));
// result: 2016-03-27
up
1
p dot rijt at caesar dot nl
2 years ago
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(0, 0, 0, 11$year), 
       
// 1e Kerstdag
       
mktime(0, 0, 0, 12, 25, $year), 
       
// 2e Kerstdag
       
mktime(0, 0, 0, 12, 26, $year)
    );
     
   
// Bevrijdingsdag
   
if (($year % 5) == 0) {
       
$holidays[] = mktime(0, 0, 0, 5, 5, $year); 
    }
   
   
// Koninginnedag (< 2014) of Koningsdag (>= 2014).
    // Verplaats naar zaterdag als het valt op zondag.
   
if ($year <= 2013) { // Koninginnedag <= 2013
       
if (date('w', mktime(0, 0, 0, 4, 30, $year)) == 0) { // Op zondag?
           
$holidays[] = mktime(0, 0, 0, 4, 29, $year);  // Verplaats naar zaterdag
       
} else {
           
$holidays[] = mktime(0, 0, 0, 4, 30, $year);  // Koninginnedag
       
}
    } else {
// Koningsdag > 2014
       
if (date('w', mktime(0, 0, 0, 4, 27, $year)) == 0) { // Op zondag?
           
$holidays[] = mktime(0, 0, 0, 4, 26, $year);  // Verplaats naar zaterdag
       
} else {
           
$holidays[] = mktime(0, 0, 0, 4, 27, $year);  // Koningsdag
       
}
    }
   
   
// Onderstaande dagen hebben een datum afhankelijk van Pasen
    // Goede Vrijdag (= pasen - 2)
   
$holidays[] = strtotime('-2 days', mktime(0, 0, 0, $easterMonth, $easterDay$easterYear));
   
// 1e Paasdag
   
$holidays[] = mktime(0, 0, 0, $easterMonth, $easterDay$easterYear);
   
// 2e Paasdag (= pasen +1)
   
$holidays[] = strtotime('+1 days', mktime(0, 0, 0, $easterMonth, $easterDay$easterYear));
   
// Hemelvaartsdag (= pasen + 39)
   
$holidays[] = strtotime('+39 days', mktime(0, 0, 0, $easterMonth, $easterDay$easterYear));
   
// 1e Pinksterdag (= pasen + 49)
   
$holidays[] = strtotime('+49 days', mktime(0, 0, 0, $easterMonth, $easterDay$easterYear));
   
// 2e Pinksterdag (= pasen + 50)
   
$holidays[] = strtotime('+50 days', mktime(0, 0, 0, $easterMonth, $easterDay$easterYear));

   
sort($holidays);
 
    return
$holidays;
}

$holidays = getHolidays(2014);

foreach (
$holidays as $holiday) {
    echo
date('d-M-Y', $holiday) . '<br>';
}
?>
up
1
martin at diers dot cc
16 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);
    }
?>
up
1
ian at eiloart dot com-NOSPAM
16 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.
To Top