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

Servlets/JSP Java Discussion :

Gestion des intervalles


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 360
    Points : 139
    Points
    139
    Par défaut Gestion des intervalles
    Bonsoir,

    Je suis en train de développer une application qui gère les horaires. Gràce à vous, j'ai réussi à développer le module concernant les congés et je vous en remercie.
    Je reviens vers vous car je dois développer un module qui doit afficher la présence des salariés pour une journée donnée et je n'y arrive pas


    Ceci :

    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
     
     
     String[] heurJour={"05:00","05:15","05:30","05:45","06:00","06:15","06:30","06:45","07:00","07:15","07:30","07:45","08:00","08:15","08:30","08:45","09:00","09:15","09:30","09:45","10:00","10:15","10:30","10:45","11:00","11:15","11:30","11:45","12:00","12:15","12:30","12:45","13:00","13:15","13:30","13:45","14:00","14:15","14:30","14:45","15:00","15:15","15:30","15:45","16:00","16:15","16:30","16:45","17:00","17:15","17:30","17:45","18:00","18:15","18:30","18:45","19:00","19:15","19:30","19:45","20:00","20:15","20:30","20:45","21:00","21:15","21:30","21:45","22:00","22:15","22:30","22:45","23:00","23:15","23:30","23:45","24:00"}; 
     
    ......
     
    for (JourDTO mapKey : hashMap.keySet()) {	
       //Horaire de Debut du salarié
       String getDebutHoraire = ""+mapKey.getDebutHoraire();	
       String HeureDebutAdecoupe[] = getDebutHoraire.split(":");
       String heureDebutTravail = HeureDebutAdecoupe[0];
       String minuteDebutTravail = HeureDebutAdecoupe[1];
       String heureTravailDebut = heureDebutTravail+":"+minuteDebutTravail;
     
       //Horaire de Fin Debut du salarié
       String getFinHoraire = ""+mapKey.getFinHoraire();
       String HeureFintAdecoupe[] = getFinHoraire.split(":");
       String heureFinTravail = HeureFintAdecoupe[0];
       String minuteFinTravail = HeureFintAdecoupe[1];
       String heureTravailFin = heureFinTravail+":"+minuteFinTravail;
     
       //Horaire Tableau
      String HeureTableauAdecoupe[] = heurJour[i].split(":");
      String heureTableau = HeureTableauAdecoupe[0];
      String minuteTableau = HeureTableauAdecoupe[1];
     
      //int heure début	
      int intHeureDebut = Integer.parseInt(heureDebutTravail);
      int intMinuteDebut = Integer.parseInt(minuteDebutTravail);
     
      //int heure fin	
      int intHeureFin = Integer.parseInt(heureFinTravail);
      int intMinuteFin = Integer.parseInt(minuteFinTravail);
     
      // int heure tableau
      int intHeureTableau = Integer.parseInt(heureTableau);
      int intMinuteTableau = Integer.parseInt(minuteTableau);
     
      //Affichage Tableau
      if(intHeureDebut == intHeureTableau){
    	   if(intMinuteDebut == intMinuteTableau){
    	%>	
    		<td style="text-align: center; vertical-align: center;"> <%=heureTravailDebut%>   </td>
       <%
            c = true;
            b = true;
            break;
            //Affichage heure fin   
                    }
            }else if(intHeureFin == intHeureTableau){
                      if(intMinuteFin == intMinuteTableau){
              
       %>	
    		<td style="text-align: center; vertical-align: center;">    <%=heureTravailFin%>  </td>
       <%
            c = true;
            b = true;
            break;
                    }
            } if(intHeureTableau >= intHeureDebut && intHeureTableau < intHeureFin){
                      
                            if((intHeureTableau == intHeureDebut && intMinuteTableau >= intMinuteDebut) ||
                                            (intHeureTableau == intHeureFin && intMinuteTableau >= intMinuteFin)||
                                            (intHeureTableau >= intHeureDebut && intHeureTableau <= intHeureFin)){
                      %>	
    			<td style="text-align: center; vertical-align: center; background-color: #E8B866;"> <%=intMinuteTableau%> - <%=intMinuteDebut%> - <%=intMinuteFin%> </td>
    	   <%
                    c = true;
                    b = true;
                    break;
                      }
              }else{ 
             b = false;
            }
    }
    me permet d'obtenir cela :



    Pour la personne qui travaille de 09h00 à 12h00 et de 14h00, l'affichage fonctionne niquel. Je dirais que pour toute personne travaillant des heures entières, l'affichage est bon. La difficulté que je rencontre, c'est lorsque la personne travaille, par exemple, à 08h30 et termine à 12h30. Je n'arrive pas à trouver la bonne conditions.

    En effet, je voudrais que tout le temps où la personne travaille, la durée soit en orange (par exemple)

    Dès lors, je pense que le problème vient de cette condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if(intHeureTableau >= intHeureDebut && intHeureTableau < intHeureFin){
    		if((intHeureTableau == intHeureDebut && intMinuteTableau >= intMinuteDebut) ||
    				(intHeureTableau == intHeureFin && intMinuteTableau >= intMinuteFin)||
    				(intHeureTableau >= intHeureDebut && intHeureTableau <= intHeureFin)){
    	  %>	
    		<td style="text-align: center; vertical-align: center; background-color: #E8B866;"> <%=intMinuteTableau%> - <%=intMinuteDebut%> - <%=intMinuteFin%> </td>
       <%
            c = true;
            b = true;
            break;
              }
     }
    Je vous remercie infiniment de votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Est-ce que tu as jeté un oeil aux Range de Guava ? Guava fournit également les RangeSet et les RangeMap.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre habitué
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 360
    Points : 139
    Points
    139
    Par défaut
    Merci beaucoup pour votre réponse et votre aide. Néanmoins, n'existerait il pas une autre solution que de passer par de nouvelle librairie, qui honnêtement, je ne maitrise pas ?

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    La réponse malhonnête mais pas tant que ça : il suffit recopier le code dans ton projet

    La suggestion malhonnête mais encore moins que la précédente : apprendre et maîtriser de nouvelles APIs est une grande partie du boulot de développeur. Surtout en ce qui concerne des bibliothèque utilitaires. Est-ce que tu connais l'API Java SE par coeur ? Rechignerais-tu à apprendre le fonctionnement d'une classe ou d'un "framework" de cette API ?

    Pour répondre maintenant à ta question. Revenons à la base. Tu as une liste de tranches horaire (8:00-8:15 8:15-8:30 8:30-8:45 8:45-9:00 ...). Le but étant d'afficher pour chaque employé (ligne) ces horaires de travail (cellule en orange). Ok ?

    Si je transcris en code :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for (Employé employé : getEmployés()) {
       HtmlTableRow ligne = htmlTable.startTableRow();
       for (TrancheHoraire horaire : getTrancheHoraireOuvrables()) {
          HtmlTableData cellule = ligne.startTableData();
          if (employé.travaille(horaire)) {
            cellule.getStyle().setBackground("orange");
          }
          cellule.end();
       }
       ligne.end();
    }

    Je te laisse essayer de traduire cela en JSP
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Membre habitué
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 360
    Points : 139
    Points
    139
    Par défaut
    Merci beaucoup pour votre aide, qui m'a beaucoup aidé.

    Finalement, j'ai converti mon tableau de string en time, et j'ai réussi à avoir ce que je voulais

    Et pour être honnête,je ne suis pas très à l'aise en anglais

    Quoiqu'il en soit, merci infiniment de votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des intervales de temps
    Par jpvigniel dans le forum Cognos
    Réponses: 3
    Dernier message: 01/11/2011, 11h23
  2. Gestion des intervalles entre composants
    Par Sami38 dans le forum Débuter
    Réponses: 6
    Dernier message: 15/12/2010, 12h48
  3. Gestion des variables - mémoire ?
    Par RIVOLLET dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2002, 12h44
  4. Réponses: 4
    Dernier message: 04/07/2002, 12h31
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

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