Voir le flux RSS

rawsrc

Fonction de calcul du nombre de jours travaillés en France pour un mois et une année spécifiés

Noter ce billet
par , 19/12/2017 à 21h39 (771 Affichages)
Il est même possible de tenir compte des autres jours non fériés non travaillés comme les samedis et dimanches, il suffit pour cela d'indiquer les numéros des jours concernés avec pour règle Lundi = 1 et Dimanche = 7.

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function countFrenchBusinessDays(int $year, int $month, array $weekdays_off = [6, 7]): int
{
    $holidays = [
        1  => [1],       // jour de l'an
        5  => [1, 8],    // fête du travail et armistice 39-45
        7  => [14],      // fête nationale
        8  => [15],      // Assomption
        11 => [1, 11],   // Toussaint et armistice 14-18
        12 => [25]       // noël
    ];
 
    $easter_day                = (new DateTime("{$year}-03-21"))->modify('+'.easter_days($year, CAL_GREGORIAN).' days');
    $easter_month              = $easter_day->format('n');
    $holidays[$easter_month][] = $easter_day->format('j');
 
    // no business days
    if ( ! empty($weekdays_off)) {
        $start = new DateTimeImmutable("{$year}-{$month}-01");
        $end   = $start->modify('first day of next month');
        $days  = new DatePeriod($start, new DateInterval('P1D'), $end);
 
        foreach ($days as $dt) {
            if (in_array($dt->format('N'), $weekdays_off)) {
                $holidays[$month][] = $dt->format('j');
            }
        }
    }
 
    return $start->format('t') - count(array_unique($holidays[$month]));
}

Envoyer le billet « Fonction de calcul du nombre de jours travaillés en France pour un mois et une année spécifiés » dans le blog Viadeo Envoyer le billet « Fonction de calcul du nombre de jours travaillés en France pour un mois et une année spécifiés » dans le blog Twitter Envoyer le billet « Fonction de calcul du nombre de jours travaillés en France pour un mois et une année spécifiés » dans le blog Google Envoyer le billet « Fonction de calcul du nombre de jours travaillés en France pour un mois et une année spécifiés » dans le blog Facebook Envoyer le billet « Fonction de calcul du nombre de jours travaillés en France pour un mois et une année spécifiés » dans le blog Digg Envoyer le billet « Fonction de calcul du nombre de jours travaillés en France pour un mois et une année spécifiés » dans le blog Delicious Envoyer le billet « Fonction de calcul du nombre de jours travaillés en France pour un mois et une année spécifiés » dans le blog MySpace Envoyer le billet « Fonction de calcul du nombre de jours travaillés en France pour un mois et une année spécifiés » dans le blog Yahoo

Mis à jour 30/12/2017 à 15h18 par rawsrc

Catégories
PHP , Développement Web

Commentaires

  1. Avatar de Dendrite
    • |
    • permalink
    Bonjour Raw !
    Merci pour la fonction, j'ai justement besoin d'un outil de ce genre en ce moment !
    Je ne comprends juste pas comment on gère l'ascension ou la pentecôte, car elles sont à des dates différentes chaque année...
  2. Avatar de enterprise
    • |
    • permalink
    Bonjour, et merci Raw!

    Pour les vacances et jours fériés qui "bougent' on pourrait les mettre dans une BDD et du coup donner le moyen aux administrateur de modifié ça dans un back-office?