From f402753fa31338c5af555748fdd9163f2aba598d Mon Sep 17 00:00:00 2001 From: Thomas OURSEL Date: Mon, 23 Apr 2018 15:14:34 +0200 Subject: [PATCH 1/4] Fix french holidays (Easter related) --- htdocs/core/lib/date.lib.php | 46 +++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index 931f30ce998..8a52941091e 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -562,56 +562,70 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR') { $countryfound=1; - // Definition des dates feriees fixes + // Définition des dates fériées 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 == 15 && $mois == 8) $ferie=true; // 15 août 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 + // Calcul du jour de Pâques $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 + // Pâques - // Calcul du jour de l ascension (38 jours apres Paques) + // Calcul du jour du lundi de Pâques + $date_lundi_paques = mktime( + date("H", $date_paques), + date("i", $date_paques), + date("s", $date_paques), + date("m", $date_paques), + date("d", $date_paques) + 1, + date("Y", $date_paques) + ); + $jour_lundi_ascension = date("d", $date_lundi_paques); + $mois_lundi_ascension = date("m", $date_lundi_paques); + if($jour_lundi_ascension == $jour && $mois_lundi_ascension == $mois) $ferie=true; + // Lundi de Pâques + + // Calcul du jour de l'ascension (38 jours apres Pâques) $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("d", $date_paques) + 39, 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 + // Ascension - // Calcul de Pentecote (11 jours apres Paques) + // Calcul de Pentecôte (11 jours apres Pâques) $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) + date("H", $date_paques), + date("i", $date_paques), + date("s", $date_paques), + date("m", $date_paques), + date("d", $date_paques) + 49, + date("Y", $date_paques) ); $jour_pentecote = date("d", $date_pentecote); $mois_pentecote = date("m", $date_pentecote); if($jour_pentecote == $jour && $mois_pentecote == $mois) $ferie=true; - //Pentecote + // Pentecôte // 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) + // Samedi (6) et dimanche (0) } // Pentecoste and Ascensione in Italy go to the sunday after: isn't holiday. From e1cfe0e2dd2356ac5bf08696db02eab34e840832 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 27 Apr 2018 09:49:15 +0200 Subject: [PATCH 2/4] Update date.lib.php --- htdocs/core/lib/date.lib.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index 86f2b5d727a..9e654edbaff 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -583,7 +583,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR', $ { $countryfound=1; - // Définition des dates fériées fixes + // Definition of fixed working days 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 @@ -593,14 +593,14 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR', $ if($jour == 11 && $mois == 11) $ferie=true; // 11 novembre if($jour == 25 && $mois == 12) $ferie=true; // 25 decembre - // Calcul du jour de Pâques + // Calculation for easter date $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; // Pâques - // Calcul du jour du lundi de Pâques + // Calculation for the monday of easter date $date_lundi_paques = mktime( date("H", $date_paques), date("i", $date_paques), @@ -614,7 +614,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR', $ if($jour_lundi_ascension == $jour && $mois_lundi_ascension == $mois) $ferie=true; // Lundi de Pâques - // Calcul du jour de l'ascension (38 jours apres Pâques) + // Calcul du jour de l'ascension (38 days after easter day) $date_ascension = mktime( date("H", $date_paques), date("i", $date_paques), @@ -628,7 +628,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR', $ if($jour_ascension == $jour && $mois_ascension == $mois) $ferie=true; // Ascension - // Calcul de Pentecôte (11 jours apres Pâques) + // Calculation of "Pentecote" (11 days after easter day) $date_pentecote = mktime( date("H", $date_paques), date("i", $date_paques), From dde86628e709fa3a8726bce2bbb98f4eeb5c5e7b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 27 Apr 2018 09:49:52 +0200 Subject: [PATCH 3/4] Update date.lib.php --- htdocs/core/lib/date.lib.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index 9e654edbaff..a3f945a05a4 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -584,14 +584,14 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR', $ $countryfound=1; // Definition of fixed working days - 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 août - 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 + if($jour == 1 && $mois == 1) $ferie=true; // 1er january + if($jour == 1 && $mois == 5) $ferie=true; // 1er may + if($jour == 8 && $mois == 5) $ferie=true; // 5 may + if($jour == 14 && $mois == 7) $ferie=true; // 14 july + if($jour == 15 && $mois == 8) $ferie=true; // 15 august + if($jour == 1 && $mois == 11) $ferie=true; // 1 november + if($jour == 11 && $mois == 11) $ferie=true; // 11 november + if($jour == 25 && $mois == 12) $ferie=true; // 25 december // Calculation for easter date $date_paques = easter_date($annee); From 42722da82463dc4088966ff12c65c0ac56896d24 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 27 Apr 2018 09:55:44 +0200 Subject: [PATCH 4/4] Update date.lib.php --- htdocs/core/lib/date.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index a3f945a05a4..ee3b575d5d1 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -640,7 +640,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR', $ $jour_pentecote = date("d", $date_pentecote); $mois_pentecote = date("m", $date_pentecote); if($jour_pentecote == $jour && $mois_pentecote == $mois) $ferie=true; - // Pentecôte + // "Pentecote" // Calul des samedis et dimanches $jour_julien = unixtojd($timestampStart);