Advertisement
Guest User

holidays.php

a guest
Nov 20th, 2014
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.87 KB | None | 0 0
  1. <?
  2. function getHolidays($year = null)
  3. {
  4.         if ($year === null)
  5.         {
  6.                 $year = intval(strftime('%Y'));
  7.         }
  8.  
  9.         $easterDate = easter_date($year);
  10.         $easterDay = date('j', $easterDate);
  11.         $easterMonth = date('n', $easterDate);
  12.         $easterYear = date('Y', $easterDate);
  13.  
  14.         $holidays = array(
  15.                 // Jours feries fixes
  16.                 mktime(0, 0, 0, 1, 1, $year),// 1er janvier
  17.                 mktime(0, 0, 0, 5, 1, $year),// Fete du travail
  18.                 mktime(0, 0, 0, 5, 8, $year),// Victoire des allies
  19.                 mktime(0, 0, 0, 7, 14, $year),// Fete nationale
  20.                 mktime(0, 0, 0, 8, 15, $year),// Assomption
  21.                 mktime(0, 0, 0, 11, 1, $year),// Toussaint
  22.                 mktime(0, 0, 0, 11, 11, $year),// Armistice
  23.                 mktime(0, 0, 0, 12, 25, $year),// Noel
  24.  
  25.                 // Jour feries qui dependent de paques
  26.                 mktime(0, 0, 0, $easterMonth, $easterDay + 1, $easterYear),// Lundi de paques
  27.                 mktime(0, 0, 0, $easterMonth, $easterDay + 39, $easterYear),// Ascension
  28.                 mktime(0, 0, 0, $easterMonth, $easterDay + 50, $easterYear), // Pentecote
  29.         );
  30.  
  31.         sort($holidays);
  32.  
  33.         return $holidays;
  34. }
  35. function am($value) {
  36. return strftime('%Y-%m-%d', $value);
  37. }
  38.  
  39. function isHoliday($timestamp)
  40. {
  41.         $iDayNum = strftime('%u', $timestamp);
  42.         $iYear = strftime('%Y', $timestamp);
  43.  
  44.         $aHolidays = getHolidays($iYear);
  45.  
  46.         /*
  47.         * On est oblige de convertir les timestamps en string a cause des decalages horaires.
  48.         */
  49.         $aHolidaysString = array_map("am", $aHolidays);
  50.  
  51.         if (in_array(strftime('%Y-%m-%d', $timestamp), $aHolidaysString) OR $iDayNum == 6 OR $iDayNum == 7)
  52.         {
  53.                 return true;
  54.         }
  55.         return false;
  56. }
  57.  
  58.  
  59. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement