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

API standards et tierces Java Discussion :

Calcul jours ouvrables en un mois


Sujet :

API standards et tierces Java

  1. #1
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 66
    Par défaut Calcul jours ouvrables en un mois
    Bonjour

    Je suis entrain de réaliser une application de gestion de congés .
    Un employé insère date début et date fin et on calcule la durée du congé qui peut s'étendre sur deux mois .
    Je voudrais savoir comment peut on calculer la durée du congé en un seul mois (pour la gestion de salaire)! ainsi que supprimer les weekend deux jours si inclus
    Merci de m'aider

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    il n'y a pas d'avance, tu va devoir compter "a la main". tu prend la date de départ, tu rajoute un jour à la fois (via le Calendar et sa méthode add()), et au fur et à mesure tu teste si le jour est ouvrable ou pas (ces critères dépendent de ce que tu entends par ouvrable) en incrémentant un compteur.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 66
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    il n'y a pas d'avance, tu va devoir compter "a la main". tu prend la date de départ, tu rajoute un jour à la fois (via le Calendar et sa méthode add()), et au fur et à mesure tu teste si le jour est ouvrable ou pas (ces critères dépendent de ce que tu entends par ouvrable) en incrémentant un compteur.
    Désolée mais j'ai pas bien compris : j'ai deux jours non ouvrables : samedi et dimanche par exemple si le congé entre lundi et vendredi tous les jours sont ouvrables rien à retrancher !
    Merci de m'éclaircir un peu comment faire le format des dates avec lesquelles je travaille dd-mm-yyyy !

  4. #4
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 66
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    il n'y a pas d'avance, tu va devoir compter "a la main". tu prend la date de départ, tu rajoute un jour à la fois (via le Calendar et sa méthode add()), et au fur et à mesure tu teste si le jour est ouvrable ou pas (ces critères dépendent de ce que tu entends par ouvrable) en incrémentant un compteur.
    comment tester si les jours sont ouvrables ou pas sachant que je voudrais juste retrancher les jours : samedi et dimanche !

  5. #5
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int getNbJoursOuvrables(Calendar from, Calendar to) {
       int nbJoursOuvrables = 0;
     
       for (Calendar c = (Calendar) from.clone(); c.compareTo(to) <= 0; c.add(Calendar.DATE, +1)) {
          int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
          if (dayOfWeek != Calendar.SATURDAY && dayOfWeek != Calendar.SUNDAY) {
             nbJoursOuvrables++;
          }
       }
       return nbJoursOuvrables;
    }

  6. #6
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 66
    Par défaut
    Citation Envoyé par herve91 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int getNbJoursOuvrables(Calendar from, Calendar to) {
       int nbJoursOuvrables = 0;
     
       for (Calendar c = (Calendar) from.clone(); c.compareTo(to) <= 0; c.add(Calendar.DATE, +1)) {
          int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
          if (dayOfWeek != Calendar.SATURDAY && dayOfWeek != Calendar.SUNDAY) {
             nbJoursOuvrables++;
          }
       }
       return nbJoursOuvrables;
    }
    Merci je vais essayer ça !

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Citation Envoyé par smiles Voir le message
    comment tester si les jours sont ouvrables ou pas sachant que je voudrais juste retrancher les jours : samedi et dimanche !
    comme je l'ai dit ca dépend de ta notion de jour ouvrable. En l'occurence, on t'as posté le code pour "samedi dimanche"

  8. #8
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 66
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    comme je l'ai dit ca dépend de ta notion de jour ouvrable. En l'occurence, on t'as posté le code pour "samedi dimanche"

    merci bien est ce que je peux savoir comment faire pour calculer la durée pour un mois
    sachant que j'ai utilisé cette requête pour la durée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "select sum( datediff( vtn.endDate, vtn.startDate ) ) FROM Vacation vtn WHERE vtn.employes.id ="
    						+ idemployes
    						+ " and vtn.startDate > '01-01-2010' and vtn.endDate < '31-12-2010' "
    et comment faire pour retrancher les jours ouvrables ?
    merci de m'aider

  9. #9
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 17
    Par défaut
    pour calculer le nombre de jours entre deux date:

    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
     
     
    public static int calc(java.util.Date date1, java.util.Date date2) {
            Calendar cal1 = Calendar.getInstance();
            cal1.setTime(date1);
     
            Calendar cal2 = Calendar.getInstance();
            cal2.setTime(date2);
     
            int nbJours = 0;
            while (cal1.compareTo(cal2) !=0) {
                cal1.add(Calendar.DATE, 1);
                if (cal1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || cal1.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
                    nbJours++;
                }
            }
            return nbJours;
        }

  10. #10
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    mohamida: la procédure de calcul a déjà été donnée par herve91 il y a 3 mois. de plus ton code est erroné. Il tournera en boucle infinie si les dates ne sont pas dans le bon ordre ou si les deux dates n'ont pas la même valeur pour Heure / minute / seconde / milliseconde (ce qui arrivera inévitablement si tu appelle int joursDepuis = calc(dateReference, new Date()); ) et enfin ton code ne compte pas les jours ouvrables mais les jours de week-ends!

Discussions similaires

  1. calcul jours ouvrables
    Par Nadgaste dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 14/01/2009, 15h04
  2. [T-SQL]nombre de jours ouvrable d'un mois
    Par soulsidibe dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/11/2006, 09h41
  3. calcul jours ouvrables access
    Par laurent.G dans le forum Access
    Réponses: 3
    Dernier message: 21/07/2006, 17h14
  4. Calcul jours ouvrables (Samedi compris)
    Par priest69 dans le forum Access
    Réponses: 9
    Dernier message: 29/10/2005, 01h35
  5. Calcul Jours Ouvrables
    Par beurnoir dans le forum Access
    Réponses: 8
    Dernier message: 26/10/2005, 16h53

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