Exemplo n.º 1
0
 /**
  * @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]];
 }
Exemplo n.º 2
0
 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));
 }
Exemplo n.º 4
0
 public function isEasterDay($date)
 {
     $easterDay = date("Y-m-d", easter_date(date("Y")));
     if ($easterDay === $date) {
         return true;
     }
     return false;
 }
Exemplo n.º 5
0
 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;
 }
Exemplo n.º 6
0
    /**
     * 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');
 }
Exemplo n.º 8
0
 /**
  * @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;
 }
Exemplo n.º 9
0
 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;
 }
Exemplo n.º 10
0
 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;
 }
Exemplo n.º 11
0
 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);
 }
Exemplo n.º 12
0
 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;
 }
Exemplo n.º 13
0
 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
 }
Exemplo n.º 14
0
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;
}
Exemplo n.º 15
0
 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;
 }
Exemplo n.º 16
0
 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;
 }
Exemplo n.º 17
0
 /**
  * 
  * @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;
 }
Exemplo n.º 18
0
/**
 * 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&ouml;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;
    }
}
Exemplo n.º 19
0
 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;
 }
Exemplo n.º 20
0
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;
}
Exemplo n.º 21
0
 /**
  * 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);
 }
Exemplo n.º 22
0
 /**
  * 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;
 }
Exemplo n.º 23
0
 /**
  * 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));
 }
Exemplo n.º 24
0
/**
 *	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;
}
Exemplo n.º 25
0
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;
    }
}
Exemplo n.º 26
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;
 }
Exemplo n.º 27
0
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;
}
Exemplo n.º 28
0
 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;
     }
 }
Exemplo n.º 29
0
 /**
  * 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;
 }
Exemplo n.º 30
0
//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);