IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

statistiques sur les jours ouvrés


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Par défaut statistiques sur les jours ouvrés
    Bonjour,

    alors voilà j'ai un outil de réservation de voiture. Pour le moment je fais les stat sur tout le mois. Mais pour voir si il y a trop ou pas assez de véhicules on me demande de proposer des stats avec uniquement les jours ouvrés c'est-à-dire non compris le samedi le dimanche et jours feriés si il y a.

    Et la je vois pas comment faire pour lui dire que telle date est un samedi telle autre est un dimanche et que la roisième est un jour ferié...

    Un début de piste?

    Merci.

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494

  3. #3
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Salut,

    Pour ton pb, le plus dur est de calculer les jours fériés car ils y en a des mobiles (j'avais eu ce pb, il y a qq mois). Aujourd'hui en refaisant une recherche je suis tomber sur un code bien fait. Tu as bien de la chance (celle que j'avais pas eu à l'époque)
    Code : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    <?php
     
    function ferie($mois,$an, $alsace = false){
    if (is_array($mois)){
    $retour = array();
    foreach ($mois as $m) {
    $r = ferie($m, $an);
    $retour[$m] = ferie($m, $an);
    }
    return $retour;
    }
     
    // calcul des jours feries pour un seul mois.
    if (mktime(0,0,0,$mois, 1,$an) == -1) { return FALSE;}
    list($mois, $an) = explode("-", date("m-Y", mktime(0,0,0,$mois, 1, $an)));
    $an = intval($an);
    $mois = intval($mois);
     
    // une constante
    $jour = 3600*24;
     
    // les jours fixes
    $ferie["Jour de l'an"][1] = 1;
    $ferie["Armistice 39-45 "][5] = 8;
    $ferie["Toussaint"][11] = 1;
    $ferie["Armistice 14-18"][11] = 11;
    $ferie["Assomption"][8] = 15;
    $ferie["Fête du travail "][5] = 1;
    $ferie["Fête nationale"][7] = 14;
    $ferie["Noël"][12] = 25;
    if ($alsace)
    $ferie["Lendemain de Noël (Alsace seulement)"][12] = 25;
     
    // quelques fetes mobiles
    $lundi_de_paques['mois'] = date( "n", easter_date($an)+1*$jour);
    $lundi_de_paques['jour'] = date( "j", easter_date($an)+1*$jour);
    $lundi_de_paques['nom'] = "Lundi de Pâques";
     
    $ascencion['mois'] = date( "n", easter_date($an)+39*$jour);
    $ascencion['jour'] = date( "j", easter_date($an)+39*$jour);
    $ascencion['nom'] = "Jeudi de l'ascenscion";
     
    $vendredi_saint['mois'] = date( "n", easter_date($an)-2*$jour);
    $vendredi_saint['jour'] = date( "j", easter_date($an)-2*$jour);
    $vendredi_saint['nom'] = "Vendredi Saint";
     
    $lundi_de_pentecote['mois'] = date( "n", easter_date($an)+50*$jour);
    $lundi_de_pentecote['jour'] = date( "j", easter_date($an)+50*$jour);
    $lundi_de_pentecote['nom'] = "Lundi de Pentecôte";
     
     
    $ferie[$lundi_de_paques['nom']][$lundi_de_paques['mois']] = $lundi_de_paques['jour'];
    $ferie[$lundi_de_pentecote['nom']][$lundi_de_pentecote['mois']] = $lundi_de_pentecote['jour'];
    $ferie[$ascencion['nom']][$ascencion['mois']] = $ascencion['jour'];
    if ($alsace)
    $ferie[$vendredi_saint['nom']." (Alsace)"][$vendredi_saint['mois']]= $vendredi_saint['jour'];
     
    // reponse
    $reponse = array();
    while(list($nom, $date)= each($ferie)){
    if (isset($date[$mois])){
    // une fete a date calculable
    $reponse[$date[$mois]]=$nom;
    }
    }
    ksort($reponse);
    return $reponse;
    }
    function tab_jours_feriés($an) {
    return ferie(range(1,12),$an);
    }
     
    /************ EXECUTION *********************/
    $année = date("Y");
    $fériées = tab_jours_feriés($année);
     
    echo "<br>";
    while (list($mois, $tab) = each ($fériées)) {
    while (list($jour, $fete) = each ($tab)) {
    echo "$jour/$mois/$année => $fete \n<br>";
    }
     
    }
    ?>
    Pour les autres jours S et D, tu fais une recherche sur date ... je crois que:
    après recherche date( 'l' );

Discussions similaires

  1. statistique sur les différentes base d'un serveur Mysql
    Par flyingtomtom dans le forum Outils
    Réponses: 2
    Dernier message: 06/10/2006, 10h42
  2. Requête qui prenne en compte les jours ouvrés
    Par vallica dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/07/2006, 14h59
  3. question sur 6 jours ouvrés par mois de préavis du syntec
    Par Filippo dans le forum Droit du travail
    Réponses: 21
    Dernier message: 14/06/2006, 14h20
  4. statistiques sur les lignes et colonnes d'un fichier
    Par ericbareke dans le forum Langage
    Réponses: 5
    Dernier message: 23/03/2006, 17h09
  5. [VB.Net] Calendar et style sur les jours
    Par Sardonnen dans le forum ASP.NET
    Réponses: 1
    Dernier message: 18/11/2005, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo