Last active
December 17, 2015 13:39
-
-
Save kingkorf/5618766 to your computer and use it in GitHub Desktop.
Nederlandse feestdagen
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
trait Feestdagen | |
{ | |
private function isFeestdag(\DateTime $date) | |
{ | |
$feestdagen = $this->getFeestdagen($date->format('Y')); | |
if (in_array($date, $feestdagen)) { | |
return true; | |
} | |
return false; | |
} | |
private function getFeestdagen($jaar) | |
{ | |
$feestdagen = array(); | |
$eerstePaasdag = new \DateTime(date('Y-m-d', easter_date($jaar))); | |
$feestdagen['nieuwjaarsdag'] = new \DateTime($jaar.'-1-1'); | |
$feestdagen['eerstePaasdag'] = $eerstePaasdag; | |
$feestdagen['tweedePaasdag'] = clone($eerstePaasdag); | |
$feestdagen['tweedePaasdag']->add(new \DateInterVal('P1D')); | |
$feestdagen['koningsdag'] = new \DateTime($jaar.'-4-27'); | |
// Valt koningsdag op zondag dan wordt het op de zaterdag ervoor gehouden | |
if ($feestdagen['koningsdag']->format('N') == 7) { | |
$feestdagen['koningsdag']->sub(new \DateInterval('P1D')); | |
} | |
// 1 keer in de vijf jaar officiele vrije dag | |
if ($jaar % 5 == 0) { | |
$feestdagen['bevrijdingsdag'] = new \DateTime($jaar.'-5-5'); | |
} | |
$feestdagen['hemelvaartsdag'] = clone($eerstePaasdag); | |
$feestdagen['hemelvaartsdag']->add(new \DateInterval('P39D')); | |
$feestdagen['eerstePinksterdag'] = clone($eerstePaasdag); | |
$feestdagen['eerstePinksterdag']->add(new \DateInterval('P49D')); | |
$feestdagen['tweedePinksterdag'] = clone($eerstePaasdag); | |
$feestdagen['tweedePinksterdag']->add(new \DateInterval('P50D')); | |
$feestdagen['eersteKerstdag'] = new \DateTime($jaar.'-12-25'); | |
$feestdagen['tweedeKerstdag'] = new \DateTime($jaar.'-12-26'); | |
return $feestdagen; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment