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

PHP & Base de données Discussion :

Contrôle des dates ( Jours fériés & week-end ) en php


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Avril 2019
    Messages : 38
    Par défaut Contrôle des dates ( Jours fériés & week-end ) en php
    Bonsoir ,

    J'ai un souci dans un mini projet je veux calculer le nombre de jour entre deux dates sans compter les jours fériés ou bien les week-end comment je peux faire s'il vous plait .

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    je ne sais pas si tu as utilisé le moteur de recherche mais j'avais codé ça : https://www.developpez.net/forums/bl...nee-specifies/

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Avril 2019
    Messages : 38
    Par défaut
    Salut,

    joli travail , mais dans votre code il faut modifier les valeurs pour chaque année c'est ça ? y a pas moyen de le faire automatiquement ?

    exemple : le weekend de la première semaine de 2019 c'est le 6 et le 7 par contre dans la première semaine de 2020 ça sera le 4 et le 5

    Merci

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    mai non ça n'a rien à voir avec les dates du premier weekend de l'année , $weekdays_off indique le numéro des jours de la semaine non travaillés : le 6ème et le 7ème jour (samedi et dimanche)

  5. #5
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Avril 2019
    Messages : 38
    Par défaut
    bon voila ce que je cherche :

    Je veux entrer les informations d'un dossier qui doit être déposer dans un établissement public (n'ouvre ni le weekend ni les jours fériés) .
    J'ai deux date : date de sortie et date de dépôt .
    Je veux calculer le nombre de jour qui reste (entre ces deux dates) pour le retour de ce dossier qui ne doit pas dépassé les 30 jours par exemple , ( selon le mois et l'année ).

    Exemple : date de sortie le : 05/04/2019
    date de dépôt le : 30/04/2019
    Le nombre de jour devrait être 22 jours ( selon le mois et l'année ) .
    Et si il y a un jour férié parmi ces 22 jours , il affichera 21 jours .

    Est ce que votre code peut gérer ça ?

    Merci

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Je n'ai rien compris

    Si tu déposes le dossier le vendredi 05/04/2019 (hypothèse : samedis et dimanches ignorés)
    En jours jusqu'au 30/04/2019, tu as les semaines des lundis 8/15/22 avril soit 15 jours puis il te reste le lundi 29/04 et le mardi 30/04, ce qui donne 15 + 2 ⇒ 17 jours avec au milieu le lundi 22 avril 2019 (férié, lundi de Pâques) soit 16 jours ouvrés.

    Quand bien même tu essaies de repartir jusqu'au dimanche 05/05/2019, soit +3 jours - 1 jour férié (le 1er mai) ⇒ 16 + 2 ⇒ 18 jours ouvrés (comment tu arrives à 22 jours ?)

    Si tu te penches un peu sur mon bout de code, il te calcule ça sans effort de ta part, tu dois juste l'adapter un poil si tu veux borner sur des dates au lieu d'une année et d'un mois...

  7. #7
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Avril 2019
    Messages : 38
    Par défaut
    Et bien le délais max avant le dépôt et de 30 jours mais c'est pas forcement 30 jours je peux le déposer avant . je dois entrer deux dates une de dépôt et l'autre de retour .
    Apres je lance une requête qui m'affiche une liste de tous les dossiers non déposer entre les deux dates par couleurs vert inférieur a 10 j , orange entre 11 j et 20 j et a la fin le rouge si supérieur a 21 ( c'est la qu'il me faut le calcule ) pour le suivi
    Et si je clique sur déposé, le dossier n’apparaîtras plus sur la liste
    par contre si vous avez une autre idée qui me seras utile, ou bien si vous pouvez m’éclairé un peu plus sur votre code , j'apprécierais votre aide .
    merci

  8. #8
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Je veux bien t'expliquer plus mon code mais je n'ai toujours pas compris tes explications sur le calcul des dates.
    Les couleurs en fonction des jours pas de soucis par contre tu dois expliquer la logique entre les dates de sortie, dépôt, retour, limite.

  9. #9
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Avril 2019
    Messages : 38
    Par défaut
    bonjour

    Donc voila je vous explique : l'objet est de contrôler la date de dépôt des dossiers.

    j'ai pris des 3 dossiers d'un établissement public pour les traiter , je les saisies dans le mini programme .

    après je dois consulter une liste de contrôle de ces dossiers qui m'afficherait les dossiers avec couleurs ( vert = date dépôt <= 10 jours , orange entre 11 jours et 20 jours , rouge >= 21 )

    NB : un établissement public ne travail pas les week-end ni les jours féries donc il si il y'en a un parmi ces jours il ne doit pas le compter

    pour cela j'ai réfléchit a deux possibilité :

    1- prendre date de saisie du dossier ( sysdate +30 jours ) sans compter les week-end et les jours féries je ne sais pas vraiment comment faire .

    2- entrer la date de retrait et la date de dépôt et calculer la différence entre eux .

    exemple : date retrait = 08/04/2019 , date dépôt le 19/04/2019
    normalement ça fait 12 jours ( le dossier dans la liste est en orange ) , mais il y a un week end qui ne doit pas être compter alors sans compter le week end c'est 10 jours (donc il doit afficher le dossier dans la liste en vert )
    c'est ce qu'il me faut , mais je pense que la méthode du sysdate marcheras mieux en cas ou je ne connais pas la date de dépôt ou si je veux évité de sortir le calendrier a chaque fois que je veux saisir un dossier pas vrai !!

    bon voila tout Merci d'avance

  10. #10
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    en gros, si j'ai bien tout compris tu voudrais que je te fournisse une solution clé en main ? C'est ça ? J'ai bon ?

  11. #11
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Avril 2019
    Messages : 38
    Par défaut
    J'aimerais bien..... mais si votre code me sera utile dans ce que je veux que vous me l'expliquiez d'avantage (s'il vous plait ).Par contre si vous connaissez une méthode pour en procéder j'aimerais bien que vous m'aidiez.

    Sinon j'ai ce bout de code mais il calcule seulement le nbr jours avec les week et tout :/ .


    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
    $reponse=$bdd->query('SELECT id , date_retrait, date_depot, TIMESTAMPDIFF(DAY, date_retrait, date_depot) as nbJours from dossier');
     
    echo '<table border=4 cellspacing=4 cellpadding=4 width=50%;"><tr><th>ID</th><th>date_retrait</th><th>date_depot</th><th>nbJours</th></tr>';
     
    while($donnees = $reponse->fetch()){
     
     
    if( $donnees['nbJours'] < 10){
     
     echo '<tr bgcolor="green"><td>'.$donnees['id'].'</td><td>'.$donnees['description'].'</td><td>'.$donnees['client'].'</td><td>'
     .$donnees['date_retrait'].'</td><td>'.$donnees['date_depot'].'</td><td>'.$donnees['nbJours'].'</td></tr>';
     
            }
     
         else if($donnees['nbJours'] >=11 and $donnees['nbJours'] <=20){
     
    echo '<tr bgcolor="orange"><td>'.$donnees['id'].'</td><td>'.$donnees['description'].'</td><td>'.$donnees['client'].'</td><td>'.
    $donnees['date_retrait'].'</td><td>'.$donnees['date_depot'].'</td><td>'.$donnees['nbJours'].'</td></tr>';
     
            }
     
              else{
     
    echo '<tr bgcolor="red"><td>'.$donnees['id'].'</td><td>'.$donnees['description'].'</td><td>'.$donnees['client'].'</td><td>'
    .$donnees['date_retrait'].'</td><td>'.$donnees['date_depot'].'</td><td>'.$donnees['nbJours'].'</td></tr>';
     
                }
     
     
    }
    voila tout et merci encore

  12. #12
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Avril 2019
    Messages : 38
    Par défaut
    bonjour , Quelqu’un d'autre peut m'aider s'il vous plait ?!!

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/09/2014, 12h39
  2. Probleme avec des dates/jours ouvres
    Par progfou dans le forum Excel
    Réponses: 10
    Dernier message: 11/02/2009, 12h58
  3. contrôle de date - jours ouvrés
    Par RobinNono dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/08/2007, 12h03
  4. Date - Jour férié
    Par JohnNC dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 16/10/2006, 02h01
  5. Intervalle Date Sans Compter Les Week Ends
    Par datamind dans le forum Oracle
    Réponses: 6
    Dernier message: 05/05/2006, 18h14

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