<?php
namespace ASEServices\ASENextFreeDelivery\Twig;
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;
class HolidayChecker extends AbstractExtension
{
public function getFilters()
{
return [
new TwigFilter('holiday', [$this, 'holiday']),
];
}
public function holiday($date, $land = 'ö') {
if (!function_exists('easter_date')) {
return false;
}
if (empty($date)) {
$werktag = time();
} else {
$werktag = strtotime($date);
}
$feiertag = false;
$os = easter_date(date('Y', $werktag));
$tag = date('d', $os);
$monat = date('m', $os);
$jahr = date('Y', $os);
$arr = array(
mktime(0,0,0, 1, 1, $jahr) => array('Neujahr' => array('ö')),
mktime(0,0,0, 1, 6, $jahr) => array('Heilige 3 Könige' => array('ö')),
mktime(0,0,0, 5, 1, $jahr) => array('Staatsfeiertag' => array('ö')),
mktime(0,0,0, 8,15, $jahr) => array('Maria Himmelfahrt' => array('ö')),
mktime(0,0,0,10,26, $jahr) => array('Nationalfeiertag' => array('ö')),
mktime(0,0,0,11, 1, $jahr) => array('Allerheiligen' => array('ö')),
mktime(0,0,0,12, 8, $jahr) => array('Maria Empfängnis' => array('ö')),
mktime(0,0,0,12,25, $jahr) => array('Christtag' => array('ö')),
mktime(0,0,0,12,26, $jahr) => array('Stephanitag' => array('ö')),
mktime(0,0,0,$monat,$tag-46,$jahr) => array('Aschermittwoch' => array('ö')),
mktime(0,0,0,$monat,$tag- 2,$jahr) => array('Karfreitag' => array('ö')),
mktime(0,0,0,$monat,$tag, $jahr) => array('Ostersonntag' => array('ö')),
mktime(0,0,0,$monat,$tag+ 1,$jahr) => array('Ostermontag' => array('ö')),
mktime(0,0,0,$monat,$tag+39,$jahr) => array('Christi Himmelfahrt' => array('ö')),
mktime(0,0,0,$monat,$tag+49,$jahr) => array('Pfingstsonntag' => array('ö')),
mktime(0,0,0,$monat,$tag+50,$jahr) => array('Pfingstmontag' => array('ö')),
mktime(0,0,0,$monat,$tag+60,$jahr) => array('Fronleichnam' => array('ö'))
);
if ($feiertag = @$arr[$werktag]) {
foreach ($feiertag as $fname=>$wo) {
if(in_array($land, $wo)) {
$feiertag = true;
}
}
}
return $feiertag;
}
}