Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function e_zi_lucrătoare(DateTime $date){
- if($date->format('N')>5) return false;// sâmbătă sau duminică
- $sarbatori_legale_statice=[
- 1 => [
- 1 => true,//Anul Nou
- 2 => true
- ],
- 5 => [
- 1 => true// Ziua Muncii
- ],
- 8 => [
- 15 => true// Adormirea Maicii Domnului
- ],
- 11 => [
- 30 => true// Sfântul Apostol Andrei cel Întâi chemat, Ocrotitorul României
- ],
- 12 => [
- 1 => true,// Ziua Națională (Ziua Marii Uniri)
- 25 => true,// Crăciunul
- 26 => true
- ],
- ];
- $luna=$date->format('n');
- if(
- isset($sarbatori_legale_statice[$luna])
- &&
- isset($sarbatori_legale_statice[$luna][$date->format('j')])
- ) return false;
- $year=$date->format('Y');
- // paștele
- // http://php.net/manual/ro/function.easter-date.php#83794
- $a = $year % 4;
- $b = $year % 7;
- $c = $year % 19;
- $d = (19 * $c + 15) % 30;
- $e = (2 * $a + 4 * $b - $d + 34) % 7;
- $month = floor(($d + $e + 114) / 31);
- if($month<10)$month='0'.$month;
- $day = (($d + $e + 114) % 31) + 1;
- if($day<10)$day='0'.$day;
- $easter=new DateTime("$year-$month-$day");
- $easter->modify('+13 days');
- if($date == $easter)//prima zi de paște
- return false;
- $easter->modify('+1 days');
- if($date == $easter)//a doua zi de paște
- return false;
- $easter->modify('+48 days');
- if($date == $easter)//rusaliile
- return false;
- $easter->modify('+1 days');
- if($date == $easter)//a doua zi de rusalii
- return false;
- return true;
- }
- var_dump(e_zi_lucrătoare(new DateTime('2014-06-09')));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement