Skip to content

Instantly share code, notes, and snippets.

@kingkorf
Last active December 17, 2015 13:39
Show Gist options
  • Save kingkorf/5618766 to your computer and use it in GitHub Desktop.
Save kingkorf/5618766 to your computer and use it in GitHub Desktop.
Nederlandse feestdagen
<?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