note 117383 added to function.easter-days
| From: | p dot rijt at caesar dot nl | Date: | Mon, 01 Jun 2015 15:20:33 +0000 |
| Subject: | note 117383 added to function.easter-days | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-202714@lists.php.net to get a copy of this message | ||
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, 1, 1, $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>';
}
?>
----
Server IP: 72.52.91.14
Probable Submitter: 90.145.202.210
----
Manual Page -- http://php.net/manual/en/function.easter-days.php
Edit -- https://master.php.net/note/edit/117383
Del: integrated -- https://master.php.net/note/delete/117383/integrated
Del: useless -- https://master.php.net/note/delete/117383/useless
Del: bad code -- https://master.php.net/note/delete/117383/bad+code
Del: spam -- https://master.php.net/note/delete/117383/spam
Del: non-english -- https://master.php.net/note/delete/117383/non-english
Del: in docs -- https://master.php.net/note/delete/117383/in+docs
Del: other reasons-- https://master.php.net/note/delete/117383
Reject -- https://master.php.net/note/reject/117383
Search -- https://master.php.net/manage/user-notes.php