/** * @return array */ public function listOfHolidays() { $y = $this->datetime->format('Y'); $d = 86400; $easter = easter_date($y); return ['brazil' => [date('d-m-Y', $easter), date('d-m-Y', $easter + 60 * $d), date('d-m-Y', $easter - 48 * $d), date('d-m-Y', $easter - 47 * $d), date('d-m-Y', $easter - 46 * $d), date('d-m-Y', $easter - 2 * $d), '01-01-' . $y, '21-04-' . $y, '01-05-' . $y, '07-09-' . $y, '12-10-' . $y, '02-11-' . $y, '15-11-' . $y, '24-12-' . $y, '25-12-' . $y, '31-12-' . $y]]; }
protected function easterDates() : array { $date = new DateTime(date('d-m-Y', easter_date($this->year))); $firstDay = $date->format('d-m'); $date->modify('+1 day'); $secondDay = $date->format('d-m'); return [$firstDay, $secondDay]; }
public function loadholidays() { $year = date('Y'); if (easter_date($year) < time()) { $year++; } return array('CHRISTIAN_EASTER' => '@' . easter_date($year)); }
public function isEasterDay($date) { $easterDay = date("Y-m-d", easter_date(date("Y"))); if ($easterDay === $date) { return true; } return false; }
public function calculateEaster() { $year = (string) $this->year; if ($year < 1970 or $year > 2037) { return alert('This app only works for years between 1970 and 2037', 'Invalid Date'); } $date = date('l jS F Y \\W\\e\\e\\k\\: W', easter_date($year)); $this->easter = $date; }
/** * special method to build events taking place relative to easter * * @param Tx_CzSimpleCal_Utility_DateTime $start * @param Tx_CzSimpleCal_Utility_DateTime $end * @param Tx_CzSimpleCal_Utility_DateTime $until * @see http://de.php.net/manual/en/function.easter-days.php */ protected function buildEaster($start, $end, $until) { if (!function_exists('easter_days') || !function_exists('easter_date')) { throw new RuntimeException('The function easter_days() or easter_date() is not available in your PHP installation. The binaries were probably not compiled using --enable-calendar. Contact your server administrator to fix this.'); } /** * calculate the day offset */ /** * the day of the year of the date given as start * 0 is the 1st January * * @var integer */ $dayOfYear = date('z', $start->getTimestamp()); $year = date('Y', $start->getTimestamp()); $dayOfYearEaster = $this->getDayOfYearForEasterSunday($year); /** * a string for DateTime->modify() to jump from easter sunday * to the desired date * null if no jumping required * * @var string|null */ $diffDaysStart = $dayOfYear - $dayOfYearEaster; $diffDaysStart = sprintf('%+d days', $diffDaysStart); /** * a string for DateTime->modify() to jump from easter sunday * to the desired date * null if no jumping required * * @var string|null */ $diffDaysEnd = date('z', $end->getTimestamp()) - $dayOfYearEaster; $diffDaysEnd = sprintf('%+d days', $diffDaysEnd); while ($until >= $start) { $this->timeline->add(array('start' => $start->getTimestamp(), 'end' => $end->getTimestamp())); // calculate dates for the next year $year = $year + 1; /** * timestamp for easter sunday of a given year * @var integer */ $easter = easter_date($year); $start->setDate($year, date('n', $easter), date('j', $easter)); if (!is_null($diffDaysStart)) { $start->modify($diffDaysStart); } $end->setDate($year, date('n', $easter), date('j', $easter)); if (!is_null($diffDaysEnd)) { $end->modify($diffDaysEnd); } } }
private function calculaFeriadosMoveis($ano) { $pascoa = new DateTime(); $pascoa->setTimestamp(easter_date($ano)); $this->feriados['pascoa'] = $pascoa->format('d/m'); $this->feriados['terca_carnaval'] = $pascoa->sub(new DateInterval('P47D'))->format('d/m'); $this->feriados['quarta_cinzas'] = $pascoa->sub(new DateInterval('P46D'))->format('d/m'); $this->feriados['sexta_santa'] = $pascoa->sub(new DateInterval('P2D'))->format('d/m'); $this->feriados['corpus_christi'] = $pascoa->sub(new DateInterval('P60D'))->format('d/m'); }
/** * @param $year * @return array */ public static function Holidays($year) { $day = 86400; $dates = array(); $dates['easter'] = easter_date($year); $dates['good_friday'] = $dates['easter'] - 2 * $day; $dates['carnival'] = $dates['easter'] - 47 * $day; $dates['corpus_christi'] = $dates['easter'] + 60 * $day; $holidays = array(Carbon::create($year, 1, 1)->format('Y-m-d'), date('Y-m-d', $dates['carnival']), date('Y-m-d', $dates['good_friday']), Carbon::create($year, 4, 21)->format('Y-m-d'), Carbon::create($year, 5, 1)->format('Y-m-d'), date('Y-m-d', $dates['corpus_christi']), Carbon::create($year, 9, 7)->format('Y-m-d'), Carbon::create($year, 10, 12)->format('Y-m-d'), Carbon::create($year, 11, 2)->format('Y-m-d'), Carbon::create($year, 11, 15)->format('Y-m-d'), Carbon::create($year, 11, 20)->format('Y-m-d'), Carbon::create($year, 12, 25)->format('Y-m-d')); return $holidays; }
public static function feriados($ano = null) { $ano = empty($ano) ? (int) date('Y') : $ano; $datas = []; $datas['pascoa'] = easter_date($ano); $datas['sexta_santa'] = strtotime("-2 day", $datas['pascoa']); $datas['carnaval'] = strtotime("-47 day", $datas['pascoa']); $datas['corpus_cristi'] = strtotime("+60 day", $datas['pascoa']); $feriados = ['Ano Novo' => '01/01/' . $ano, 'Carnaval' => date('d/m/Y', $datas['carnaval']), 'Sexta-Feira Santa' => date('d/m/Y', $datas['sexta_santa']), 'P�scoa' => date('d/m/Y', $datas['pascoa']), 'Tiradentes' => '21/04/' . $ano, 'Dia do Trabalhador' => '01/05/' . $ano, 'Corpus Cristi' => date('d/m/Y', $datas['corpus_cristi']), 'Dia da Independ�ncia' => '07/09/' . $ano, 'Nossa Senhora de Aparecida' => '12/10/' . $ano, 'Dia de Finados' => '02/11/' . $ano, 'Proclama��o da Rep�blica' => '15/11/' . $ano, 'Natal' => '25/12/' . $ano]; return $feriados; }
function feriados($ano, $posicao) { $dia = 86400; $datas = array(); $datas['pascoa'] = easter_date($ano); $datas['sexta_santa'] = $datas['pascoa'] - 2 * $dia; $datas['carnaval'] = $datas['pascoa'] - 47 * $dia; $datas['corpus_christi'] = $datas['pascoa'] + 60 * $dia; $feriados = array('01/01', date('d/m', $datas['carnaval']), date('d/m', $datas['sexta_santa']), date('d/m', $datas['pascoa']), '21/04', '01/05', date('d/m', $datas['corpus_christi']), '12/10', '02/11', '15/11', '25/12'); return $feriados[$posicao] . "/" . $ano; }
public static function est_ferie($jour) { $jour = date("Y-m-d", strtotime($jour)); $annee = date("Y"); $dimanche_paques = date("Y-m-d", easter_date($annee)); $lundi_paques = date("Y-m-d", strtotime("{$dimanche_paques} +1 day")); $jeudi_ascension = date("Y-m-d", strtotime("{$dimanche_paques} +39 day")); $lundi_pentecote = date("Y-m-d", strtotime("{$dimanche_paques} +50 day")); $jours_feries = array($dimanche_paques, $lundi_paques, $jeudi_ascension, $lundi_pentecote, "{$annee}-01-01", "{$annee}-05-01", "{$annee}-05-08", "{$annee}-05-15", "{$annee}-07-14", "{$annee}-11-11", "{$annee}-11-01", "{$annee}-12-25"); return in_array($jour, $jours_feries); }
public function holiday($year, $pos) { $day = 86400; $dates = array(); $dates['pascoa'] = easter_date($year); $dates['sexta_santa'] = $dates['pascoa'] - 2 * $day; $dates['carnaval'] = $dates['pascoa'] - 47 * $day; $dates['corpus_cristi'] = $dates['pascoa'] + 60 * $day; $holidays = array('01/01', date('d/m', $dates['carnaval']), date('d/m', $dates['sexta_santa']), date('d/m', $dates['pascoa']), '21/04', '01/05', date('d/m', $dates['corpus_cristi']), '7/09', '12/10', '02/11', '15/11', '25/12'); return $holidays[$pos] . "/" . $year; }
public function festivos($ano = '') { $this->hoy = date('d/m/Y'); if ($ano == '') { $ano = date('Y'); } $this->ano = $ano; $this->pascua_mes = date("m", easter_date($this->ano)); $this->pascua_dia = date("d", easter_date($this->ano)); $this->festivos[$ano][1][1] = true; // Primero de Enero $this->festivos[$ano][5][1] = true; // Dia del Trabajo 1 de Mayo $this->festivos[$ano][7][20] = true; // Independencia 20 de Julio $this->festivos[$ano][8][7] = true; // Batalla de Boyacá 7 de Agosto $this->festivos[$ano][12][8] = true; // Maria Inmaculada 8 diciembre (religiosa) $this->festivos[$ano][12][25] = true; // Navidad 25 de diciembre $this->calcula_emiliani(1, 6); // Reyes Magos Enero 6 $this->calcula_emiliani(3, 19); // San Jose Marzo 19 $this->calcula_emiliani(6, 29); // San Pedro y San Pablo Junio 29 $this->calcula_emiliani(8, 15); // Asunción Agosto 15 $this->calcula_emiliani(10, 12); // Descubrimiento de América Oct 12 $this->calcula_emiliani(11, 1); // Todos los santos Nov 1 $this->calcula_emiliani(11, 11); // Independencia de Cartagena Nov 11 //otras fechas calculadas a partir de la pascua. $this->otrasFechasCalculadas(-3); //jueves santo $this->otrasFechasCalculadas(-2); //viernes santo $this->otrasFechasCalculadas(36, true); //Ascención el Señor pascua $this->otrasFechasCalculadas(60, true); //Corpus Cristi $this->otrasFechasCalculadas(68, true); //Sagrado Corazón // otras fechas importantes que no son festivos // $this->otrasFechasCalculadas(-46); // Miércoles de Ceniza // $this->otrasFechasCalculadas(-46); // Miércoles de Ceniza // $this->otrasFechasCalculadas(-48); // Lunes de Carnaval Barranquilla // $this->otrasFechasCalculadas(-47); // Martes de Carnaval Barranquilla }
function getHolidays($year = null) { if ($year === null) { $year = intval(date('Y')); } $easterDate = easter_date($year); $easterDay = date('j', $easterDate); $easterMonth = date('n', $easterDate); $easterYear = date('Y', $easterDate); $holidays = array(mktime(0, 0, 0, 1, 1, $year), mktime(0, 0, 0, 5, 1, $year), mktime(0, 0, 0, 5, 8, $year), mktime(0, 0, 0, 7, 14, $year), mktime(0, 0, 0, 8, 15, $year), mktime(0, 0, 0, 11, 1, $year), mktime(0, 0, 0, 11, 11, $year), mktime(0, 0, 0, 12, 25, $year), mktime(0, 0, 0, $easterMonth, $easterDay + 1, $easterYear), mktime(0, 0, 0, $easterMonth, $easterDay + 39, $easterYear), mktime(0, 0, 0, $easterMonth, $easterDay + 50, $easterYear)); sort($holidays); return $holidays; }
protected function bhEasterDays() { $easter = new Date(easter_date($this->numeric("Y"))); # Check if it's good friday if ($this->numeric("Ymd") === $easter->subDays(2)->numeric("Ymd")) { return true; } # Check if it's easter monday if ($this->numeric("Ymd") === $easter->addDays(1)->numeric("Ymd")) { return true; } return false; }
protected function isHoliday(\DateTime $date) { $easterDate = easter_date($date->format('Y')); // Pâque $easterDay = date('j', $easterDate); $easterMonth = date('n', $easterDate); $easterYear = date('Y', $easterDate); $holidays = array(mktime(0, 0, 0, 1, 1, $date->format('Y')), mktime(0, 0, 0, 5, 1, $date->format('Y')), mktime(0, 0, 0, 5, 8, $date->format('Y')), mktime(0, 0, 0, 7, 14, $date->format('Y')), mktime(0, 0, 0, 8, 15, $date->format('Y')), mktime(0, 0, 0, 11, 1, $date->format('Y')), mktime(0, 0, 0, 11, 11, $date->format('Y')), mktime(0, 0, 0, 12, 25, $date->format('Y')), mktime(0, 0, 0, $easterMonth, $easterDay + 1, $easterYear), mktime(0, 0, 0, $easterMonth, $easterDay + 39, $easterYear)); sort($holidays); if (in_array($date->getTimestamp(), $holidays)) { return true; } return false; }
/** * * @param int $year * @return \DateTime * @throws \InvalidArgumentException */ public static function getEasterMonday($year) { $easterMondays = array('2012' => array(4, 9), '2013' => array(4, 1), '2014' => array(4, 21), '2015' => array(4, 6), '2016' => array(3, 28), '2017' => array(4, 17), '2018' => array(4, 2), '2019' => array(4, 22), '2020' => array(4, 13), '2021' => array(4, 5), '2022' => array(4, 18), '2023' => array(4, 10), '2024' => array(4, 1), '2025' => array(4, 21), '2025' => array(4, 5)); $dateTime = new \DateTime(); if (function_exists("easter_date") && is_callable("easter_date")) { // function can be undefined if PHP compiled without --enable-calendar $dateTime->setTimestamp(easter_date($year)); $dateTime->modify("+1 day"); } else { if (!isset($easterMondays[$year])) { throw new \InvalidArgumentException("Undefined easter monday for year ({$year})"); } $easterMonday = $easterMondays[$year]; $dateTime->setDate($year, $easterMonday[0], $easterMonday[1]); } return $dateTime; }
/** * Ermittle Feiertage, Arbeitstage und Wochenenden von einem Datum * * @param string $datum im Format YYYY-MM-DD * @param string $bundesland * @return string */ function feiertag($datum, $bundesland = '') { $datum = explode("-", $datum); $datum[1] = str_pad($datum[1], 2, "0", STR_PAD_LEFT); $datum[2] = str_pad($datum[2], 2, "0", STR_PAD_LEFT); if (!checkdate($datum[1], $datum[2], $datum[0])) { return false; } $datum_arr = getdate(mktime(0, 0, 0, $datum[1], $datum[2], $datum[0])); $easter_d = date("d", easter_date($datum[0])); $easter_m = date("m", easter_date($datum[0])); $status = 'Arbeitstag'; if ($datum_arr['wday'] == 0 || $datum_arr['wday'] == 6) { $status = 'Wochenende'; } if ($datum[1] . $datum[2] == '0101') { return 'Neujahr'; } elseif ($datum[1] . $datum[2] == '0106') { return 'Hg. 3 Könige'; } elseif ($datum[1] . $datum[2] == date("md", mktime(0, 0, 0, $easter_m, $easter_d - 2, $datum[0]))) { return 'Karfreitag'; } elseif ($datum[1] . $datum[2] == $easter_m . $easter_d) { return 'Ostersonntag'; } elseif ($datum[1] . $datum[2] == date("md", mktime(0, 0, 0, $easter_m, $easter_d + 1, $datum[0]))) { return 'Ostermontag'; } elseif ($datum[1] . $datum[2] == date("md", mktime(0, 0, 0, $easter_m, $easter_d + 39, $datum[0]))) { return 'Christi Himmelfahrt'; } elseif ($datum[1] . $datum[2] == date("md", mktime(0, 0, 0, $easter_m, $easter_d + 49, $datum[0]))) { return 'Pfingstsonntag'; } elseif ($datum[1] . $datum[2] == date("md", mktime(0, 0, 0, $easter_m, $easter_d + 50, $datum[0]))) { return 'Pfingstmontag'; } elseif ($datum[1] . $datum[2] == date("md", mktime(0, 0, 0, $easter_m, $easter_d + 60, $datum[0]))) { return 'Fronleichnam'; } elseif ($datum[1] . $datum[2] == '0501') { return 'Tag der Arbeit'; } elseif ($datum[1] . $datum[2] == '1101') { return 'Allerheiligen'; } elseif ($datum[1] . $datum[2] == '1225') { return '1. Weinachtstag'; } elseif ($datum[1] . $datum[2] == '1226') { return '2. Weinachtstag'; } else { return $status; } }
public function feriados($arrFeriado, $ano, $posicao) { $datas = array(); foreach ($arrFeriado as $data) { $datas[] = $data; } $dia = 86400; $pescoa = easter_date($ano); $sexta_santa = $pescoa - 2 * $dia; $carnaval = $pescoa - 47 * $dia; $corpus_cristi = $pescoa + 60 * $dia; $datas[] = date('d/m', $carnaval); // carnaval $datas[] = date('d/m', $sexta_santa); //sexta_santa $datas[] = date('d/m', $corpus_cristi); //corpus_cristi return $datas[$posicao] . "/" . $ano; }
function getHolidays($month, $day) { $holidays = simplexml_load_file(e_PLUGIN . 'dateplus/holidays.xml'); $output = array(); foreach ($holidays->month as $m) { if ($m['id'] == $month) { foreach ($m->holiday as $holiday) { $d = is_numeric((string) $holiday['day']) ? $holiday['day'] : date('j', strtotime($holiday['day'] . ' of this month')); if ($d == $day) { $output[] = array($holiday['name'], $month, $d); } if ($m['id'] . '/' . $day == date('n/j', easter_date())) { $output[] = array('Easter', $month, $day); } } } } return $output; }
/** * Calculates the date of Easter on the Gregorian Calendar. This is based on * a function found in the comments here: * * http://www.php.net/manual/en/function.easter-date.php * * @param int $year The year. If omitted, the current year. * @return int A timestamp representing Easter. */ public static function easterDate($year = "") { if (empty($year)) { $year = (int) date("Y"); } // PHP has a builtin function for this, but it only works with valid // UNIX time. So if we're trying to calculate a date where UNIX time is // valid, we can use this instead of calculating it ourselves. if (function_exists("easter_date") && $year >= 1970 && $year <= 2037) { return easter_date($year); } $golden = $year % 19; $leap = (int) ($year / 100); $modulo = (int) ($leap - (int) ($leap / 4) - (int) ((8 * $leap + 13) / 25) + 19 * $golden + 15) % 30; $paschal_days = (int) $modulo - (int) ($modulo / 28) * (1 - (int) ($modulo / 28) * (int) (29 / ($modulo + 1)) * ((int) (21 - $golden) / 11)); $paschal_day_of_week = ($year + (int) ($year / 4) + $paschal_days + 2 - $leap + (int) ($leap / 4)) % 7; $paschal_number = $paschal_days - $paschal_day_of_week; $month = 3 + (int) (($paschal_number + 40) / 44); $day = $paschal_number + 28 - 31 * (int) ($month / 4); return mktime(0, 0, 0, $month, $day, $year); }
/** * Get public holidays for this year the previous year and the next year * */ public static function getPublicHolidays() { $now = getDate(); //Initilized with french public holidays: easter .. $list = array(date("Ymd", easter_date($now['year'] - 1)), date("Ymd", easter_date($now['year'] - 1) + 39 * (24 * 3600)), date("Ymd", easter_date($now['year'] - 1) + 50 * (24 * 3600)), date("Ymd", easter_date($now['year'])), date("Ymd", easter_date($now['year']) + 39 * (24 * 3600)), date("Ymd", easter_date($now['year']) + 50 * (24 * 3600)), date("Ymd", easter_date($now['year'] + 1)), date("Ymd", easter_date($now['year'] + 1) + 39 * (24 * 3600)), date("Ymd", easter_date($now['year'] + 1) + 50 * (24 * 3600))); //get others public holidays from file $arrayHolidays = file(dirname(__FILE__) . '/../../misc/holidays/fr'); //remove easter array_shift($arrayHolidays); $holifile = array(); foreach ($arrayHolidays as $holidays) { preg_match('/(.*)\\t(.*)\\t(Bank)/', $holidays, $matches); if ($matches[0]) { $strholi = substr($matches[0], 0, 5); $strholiArray = explode('-', $strholi); array_push($list, date("Ymd", mktime(0, 0, 0, $strholiArray[0], $strholiArray[1], $now['year'] - 1))); array_push($list, date("Ymd", mktime(0, 0, 0, $strholiArray[0], $strholiArray[1], $now['year']))); array_push($list, date("Ymd", mktime(0, 0, 0, $strholiArray[0], $strholiArray[1], $now['year'] + 1))); } } return $list; }
/** * Creates an list of brazilian holliday dates * * @access protected * @param int $year * @return array List of brazilian holliday dates */ protected function _brazil($year) { $easter = easter_date($year); return array(mktime(0, 0, 0, 1, 1, $year), mktime(0, 0, 0, 4, 21, $year), mktime(0, 0, 0, 5, 1, $year), mktime(0, 0, 0, 9, 7, $year), mktime(0, 0, 0, 10, 12, $year), mktime(0, 0, 0, 11, 2, $year), mktime(0, 0, 0, 11, 15, $year), mktime(0, 0, 0, 12, 25, $year), strtotime('-48 days', $easter), strtotime('-47 days', $easter), strtotime('-2 days', $easter), $easter, strtotime('60 days', $easter)); }
/** * Fonction retournant le nombre de jour fieries samedis et dimanches entre 2 dates entrees en timestamp * Called by function num_open_day * * @param timestamp $timestampStart Timestamp de debut * @param timestamp $timestampEnd Timestamp de fin * @param string $countrycode Country code * @return int Nombre de jours feries */ function num_public_holiday($timestampStart, $timestampEnd, $countrycode = 'FR') { $nbFerie = 0; while ($timestampStart != $timestampEnd) { $ferie = false; $countryfound = 0; $jour = date("d", $timestampStart); $mois = date("m", $timestampStart); $annee = date("Y", $timestampStart); if ($countrycode == 'FR') { $countryfound = 1; // Definition des dates feriees fixes if ($jour == 1 && $mois == 1) { $ferie = true; } // 1er janvier if ($jour == 1 && $mois == 5) { $ferie = true; } // 1er mai if ($jour == 8 && $mois == 5) { $ferie = true; } // 5 mai if ($jour == 14 && $mois == 7) { $ferie = true; } // 14 juillet if ($jour == 15 && $mois == 8) { $ferie = true; } // 15 aout if ($jour == 1 && $mois == 11) { $ferie = true; } // 1 novembre if ($jour == 11 && $mois == 11) { $ferie = true; } // 11 novembre if ($jour == 25 && $mois == 12) { $ferie = true; } // 25 decembre // Calcul du jour de paques $date_paques = easter_date($annee); $jour_paques = date("d", $date_paques); $mois_paques = date("m", $date_paques); if ($jour_paques == $jour && $mois_paques == $mois) { $ferie = true; } // Paques // Calcul du jour de l ascension (38 jours apres Paques) $date_ascension = mktime(date("H", $date_paques), date("i", $date_paques), date("s", $date_paques), date("m", $date_paques), date("d", $date_paques) + 38, date("Y", $date_paques)); $jour_ascension = date("d", $date_ascension); $mois_ascension = date("m", $date_ascension); if ($jour_ascension == $jour && $mois_ascension == $mois) { $ferie = true; } //Ascension // Calcul de Pentecote (11 jours apres Paques) $date_pentecote = mktime(date("H", $date_ascension), date("i", $date_ascension), date("s", $date_ascension), date("m", $date_ascension), date("d", $date_ascension) + 11, date("Y", $date_ascension)); $jour_pentecote = date("d", $date_pentecote); $mois_pentecote = date("m", $date_pentecote); if ($jour_pentecote == $jour && $mois_pentecote == $mois) { $ferie = true; } //Pentecote // Calul des samedis et dimanches $jour_julien = unixtojd($timestampStart); $jour_semaine = jddayofweek($jour_julien, 0); if ($jour_semaine == 0 || $jour_semaine == 6) { $ferie = true; } //Samedi (6) et dimanche (0) } // Pentecoste and Ascensione in Italy go to the sunday after: isn't holiday. // Pentecoste is 50 days after Easter, Ascensione 40 if ($countrycode == 'IT') { $countryfound = 1; // Definition des dates feriees fixes if ($jour == 1 && $mois == 1) { $ferie = true; } // Capodanno if ($jour == 6 && $mois == 1) { $ferie = true; } // Epifania if ($jour == 25 && $mois == 4) { $ferie = true; } // Anniversario Liberazione if ($jour == 1 && $mois == 5) { $ferie = true; } // Festa del Lavoro if ($jour == 2 && $mois == 6) { $ferie = true; } // Festa della Repubblica if ($jour == 15 && $mois == 8) { $ferie = true; } // Ferragosto if ($jour == 1 && $mois == 11) { $ferie = true; } // Tutti i Santi if ($jour == 8 && $mois == 12) { $ferie = true; } // Immacolata Concezione if ($jour == 25 && $mois == 12) { $ferie = true; } // 25 decembre if ($jour == 26 && $mois == 12) { $ferie = true; } // Santo Stefano // Calcul du jour de paques $date_paques = easter_date($annee); $jour_paques = date("d", $date_paques); $mois_paques = date("m", $date_paques); if ($jour_paques == $jour && $mois_paques == $mois) { $ferie = true; } // Paques // Calul des samedis et dimanches $jour_julien = unixtojd($timestampStart); $jour_semaine = jddayofweek($jour_julien, 0); if ($jour_semaine == 0 || $jour_semaine == 6) { $ferie = true; } //Samedi (6) et dimanche (0) } // Cas pays non defini if (!$countryfound) { // Calul des samedis et dimanches $jour_julien = unixtojd($timestampStart); $jour_semaine = jddayofweek($jour_julien, 0); if ($jour_semaine == 0 || $jour_semaine == 6) { $ferie = true; } //Samedi (6) et dimanche (0) } // On incremente compteur if ($ferie) { $nbFerie++; } // Incrementation du nombre de jour (on avance dans la boucle) $jour++; $timestampStart = mktime(0, 0, 0, $mois, $jour, $annee); } return $nbFerie; }
function verifFeries($t) { $ferie = 0; $tab_feries = array(); $date = strtotime($t); $annee = date('Y', $date); $tab_feries = array('01-01-' . $annee, '01-05-' . $annee, '08-05-' . $annee, '14-07-' . $annee, '15-08-' . $annee, '01-11-' . $annee, '11-11-' . $annee, '25-12-' . $annee); $easter = easter_date($annee); $tab_feries[] = date('d-m-' . $annee, $easter + 86400); // Paques $tab_feries[] = date('d-m-' . $annee, $easter + 86400 * 39); // Ascension $tab_feries[] = date('d-m-' . $annee, $easter + 86400 * 50); // Pentecote if (in_array(date('d-m-Y', $date), $tab_feries)) { return 1; } else { return 0; } }
function workDays($firstDate, $secondDate) { $firstDate = strtotime($firstDate); $secondDate = strtotime($secondDate); $count = 0; $secondDate = strtotime('+1 day', $secondDate); $lastYear = null; $hol = array('01-01', '05-01', '05-03', '08-15', '11-01', '11-11', '12-25', '12-26'); while ($firstDate < $secondDate) { $year = date('Y', $firstDate); if ($year !== $lastYear) { $lastYear = $year; $easter = date('m-d', easter_date($year)); $date = strtotime($year . '-' . $easter); $easterSec = date('m-d', strtotime('+1 day', $date)); $cc = date('m-d', strtotime('+60 days', $date)); $hol[8] = $easter; $hol[9] = $easterSec; $hol[10] = $cc; } $weekDay = date('w', $firstDate); $md = date('m-d', $firstDate); if (!($weekDay == 0 || $weekDay == 6 || in_array($md, $hol) || $year > 2010 && $md == '01-06')) { $count++; } $firstDate = strtotime('+1 day', $firstDate); } return $count; }
function fcListJourFeries($iAnnee = 2000) { //Initialisation de variables $iCstJour = 3600 * 24; $tbJourFerie = array(); // Détermination des dates toujours fixes $tbJourFerie["Jour de l an"] = $iAnnee . "-01-01"; $tbJourFerie["Armistice 39-45"] = $iAnnee . "-05-08"; $tbJourFerie["Toussaint"] = $iAnnee . "-11-01"; $tbJourFerie["Armistice 14-18"] = $iAnnee . "-11-11"; $tbJourFerie["Assomption"] = $iAnnee . "-08-15"; $tbJourFerie["Fete du travail"] = $iAnnee . "-05-01"; $tbJourFerie["Fete nationale"] = $iAnnee . "-07-14"; $tbJourFerie["Noel"] = $iAnnee . "-12-25"; // Récupération des fêtes mobiles $tbJourFerie["Lundi de Paques"] = $iAnnee . date("-m-d", easter_date($iAnnee) + 1 * $iCstJour); $tbJourFerie["Jeudi de l ascenscion"] = $iAnnee . date("-m-d", easter_date($iAnnee) + 39 * $iCstJour); // Retour du tableau des jours fériés pour l'année demandée return $tbJourFerie; }
function feiertag($datum) { $datum = explode("-", $datum); $datum[1] = str_pad($datum[1], 2, "0", STR_PAD_LEFT); $datum[2] = str_pad($datum[2], 2, "0", STR_PAD_LEFT); if (!checkdate($datum[1], $datum[2], $datum[0])) { return false; } $datum_arr = getdate(mktime(0, 0, 0, $datum[1], $datum[2], $datum[0])); $easter_d = date("d", easter_date($datum[0])); $easter_m = date("m", easter_date($datum[0])); $status = 'Arbeitstag'; if ($datum_arr['wday'] == 0 || $datum_arr['wday'] == 6) { $status = 'Wochenende'; } if ($datum[1] . $datum[2] == '0101') { return 'Neujahr'; } elseif ($datum[1] . $datum[2] == date("md", mktime(0, 0, 0, $easter_m, $easter_d - 2, $datum[0]))) { return 'Karfreitag'; } elseif ($datum[1] . $datum[2] == date("md", mktime(0, 0, 0, $easter_m, $easter_d + 1, $datum[0]))) { return 'Ostermontag'; } elseif ($datum[1] . $datum[2] == '0501') { return 'Erster Mai'; } elseif ($datum[1] . $datum[2] == date("md", mktime(0, 0, 0, $easter_m, $easter_d + 39, $datum[0]))) { return 'Christi Himmelfahrt'; } elseif ($datum[1] . $datum[2] == date("md", mktime(0, 0, 0, $easter_m, $easter_d + 50, $datum[0]))) { return 'Pfingstmontag'; } elseif ($datum[1] . $datum[2] == '1003') { return 'Tag der deutschen Einheit'; } elseif ($datum[1] . $datum[2] == '1225') { return '1. Weihnachtstag'; } elseif ($datum[1] . $datum[2] == '1226') { return '2. Weihnachtstag'; } else { return $status; } }
/** * isHoliday * * Checks to see if the current date is a holiday. If it is a holiday, the name of the holiday will be returned * * @parameter string $date an optional date to check other than the one passed in the class constructor. * * @return string */ function isHoliday($date = "") { $holiday = null; if (!$date) { $date = $this->date; } $stamp = strtotime($date); $month = date("m", $stamp); $day = date("d", $stamp); $year = date("Y", $stamp); $dayOfWeek = date("w", $stamp); $options = $this->options; $easter = easter_date($year); //Get Easter date for determining Good Friday //Weekend if (array_search($dayOfWeek, $options) !== false) { if ($dayOfWeek == 0) { $holiday = "Sunday"; } elseif ($dayOfWeek == 6) { $holiday = "Saturday"; } } //New Year's Day if ($month == 1 && $day == 1) { $holiday = "New Year's Day"; } //Good Friday if (array_search($this::GoodFriday, $options) !== false) { $goodFriday = date("Y-m-d", strtotime(date("Y-m-d", $easter) . " -2 days")); if ($goodFriday == "{$year}-{$month}-{$day}") { $holiday = "Good Friday"; } } //Memorial Day if ($dayOfWeek == 1 && $day > 24 && $month == 5) { //Last Monday of May $holiday = "Memorial Day"; } //Independence Day if ($month == 7 && $day == 4) { $holiday = "Independence Day"; } //Labor Day if ($dayOfWeek == 1 && $day <= 7 && $month == 9) { //First Monday of September $holiday = "Labor Day"; } //Thanksgiving //Thanksgiving is on the fourth Thursday of November so we have to do a little extra math if ($dayOfWeek == 4 && $month == 11) { $weekNumber = floor($day / 7); if ($weekNumber == 3) { $holiday = "Thanksgiving"; } } //Day After Thanksgiving //The day after Thanksgiving is on the fourth Friday of November so we have to do a little extra math if ($dayOfWeek == 5 && $month == 11 && array_search($this->DayAfterThanksgiving, $options) !== false) { $weekNumber = floor($day / 7); if ($weekNumber == 3) { $holiday = "Day After Thanksgiving"; } } //Christmas Eve if ($day == 24 && $month == 12 && array_search($this->ChristmasEve, $options) !== false) { $holiday = "Christmas Eve"; } //Christmas if ($day == 25 && $month == 12) { $holiday = "Christmas"; } return $holiday; }
//Weekends if ($starttime > strtotime('-13 months', $endtime)) { for ($i = 0; $i < count($xdata); $i++) { $rtime = $xdata[$i]; //get start time of this day $start = mktime(0, 0, 0, date('n', $rtime), date('j', $rtime), date('Y', $rtime)); if (date('w', $rtime) == 6) { $end = $start + 60 * 60 * 24 * 2; $band = new PlotBand(VERTICAL, BAND_SOLID, $start, $end, 'lightgray@0.7'); $band->ShowFrame(false); $graph->add($band); } $year = date('Y', $rtime); $holidays['nieuwjaarsdag'] = strtotime('1 January ' . $year); $holidays['nieuwjaarsdag2'] = strtotime('2 January ' . $year); $holidays['pasen'] = easter_date($year); $holidays['paasmaandag'] = strtotime('+1 day', $holidays['pasen']); $holidays['olhhemelvaart'] = strtotime('+39 days', $holidays['pasen']); $holidays['olhhemelvaart2'] = strtotime('+1day', $holidays['olhhemelvaart']); $holidays['pinksteren'] = strtotime('+49 days', $holidays['pasen']); $holidays['pinkstermaandag'] = strtotime('+1 day', $holidays['pinksteren']); $holidays['guldensporenslag'] = strtotime('11 July ' . $year); $holidays['nationale_feestdag'] = strtotime('21 July ' . $year); $holidays['allerheiligen'] = strtotime('1 November ' . $year); $holidays['allerzielen'] = strtotime('2 November ' . $year); $holidays['wapenstilstand'] = strtotime('11 November ' . $year); $holidays['dynastie'] = strtotime('15 November ' . $year); $holidays['kerstdag'] = strtotime('25 December ' . $year); $holidays['kerstdag2'] = strtotime('26 December ' . $year); $holidays['kerstdagmin1'] = strtotime('24 December ' . $year); $holidays['december31'] = strtotime('31 December ' . $year);