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

Struts 2 Java Discussion :

Récupérer tous les jours de la semaine


Sujet :

Struts 2 Java

  1. #1
    Membre éclairé
    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
    Par défaut Récupérer tous les jours de la semaine
    Désolée de vous déranger avec ça mais je n'ai pas trouver la réponse sur le site.

    Donc j'arrive à récupérer la date de début et la date de fin de la semaine grâce à <sx:datetimepicker >

    (j'utilise du jsp et du java mais je pense que vous l'avez déjà capté ^^)

    Donc ma question est : comment puis je faire pour récupérer tous les jours de la semaine ? Surtout si dans cette semaine, les mois se chevauche ( ex: lundi 28/05/2012 au dimanche 03/06/2012)

    Merci de votre coup de main

  2. #2
    Membre éclairé
    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
    Par défaut
    Personne n'a une idée de comment peut on faire pour récupérer les jours de la semaines à partir d'une date de début et de fin de la semaine

    Que dois je mettre dans ma classe action ? Existe t'il une fonction ?

  3. #3
    Membre éprouvé
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Par défaut
    Il faudrait que tu soit plus claire dans ton besoin car là on ne comprend pas quel est ton problème exactement.
    Peux-tu détailler un peu plus ce que tu cherches à faire ?

  4. #4
    Membre éclairé
    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
    Par défaut
    Je suis en train de développer une application de gestion des horaires sur une semaine données.
    Il faut donc que sur une semaine donnée, je récupère les jours de la semaine pour y indiquer les horaires des personnes.

    Dans ma jsp, j'utilise datetimepicker pour récupérer la date de début et la date de fin de la semaine.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td colspan="9"> Semaine du<sx:datetimepicker name="dateDebut" id="dateDebut" value="" displayFormat="dd-MM-yyyy"/> au <sx:datetimepicker name="dateFin" id="dateFin" value="" displayFormat="dd-MM-yyyy"/></td>
    Dans ma classe action
    je récupère les info de la date de début et de fin pour les mettre au bon format

    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
     
    //Date début de la semaine
    		int moisDebutSemaine = this.getDateDebut().getMonth();
    		int un = 1 ;
    		moisDebutSemaine = moisDebutSemaine+un;
    		String moisDebutSemaineOk = ""+moisDebutSemaine;
    		int numeroJourDebutSemaine = this.getDateDebut().getDate();
    		int anneeDebutSemaine = this.getDateDebut().getYear();
    		String anneeDebutSemaineManip = ""+anneeDebutSemaine;
     
    		//pour récupérer l'année au bon format
    		anneeDebutSemaineManip = anneeDebutSemaineManip.substring(1, 3);
    		String anneeDebutSemaineOK = "20"+""+anneeDebutSemaineManip;
     
    //Date fin de la semaine 
    		int moisFinSemaine = this.getDateFin().getMonth();
    		moisFinSemaine = moisFinSemaine+un;
    		String moisFinSemaineOk = ""+moisFinSemaine;
    		int numeroJourFinSemaine = this.getDateFin().getDate();
    		int anneeFinSemaine = this.getDateFin().getYear();
    		String anneeFinSemaineManip = ""+anneeFinSemaine;
     
    		//pour récupérer l'année au bon format
    		anneeFinSemaineManip = anneeFinSemaineManip.substring(1, 3);
    		String anneeFinSemaineOK = "20"+""+anneeFinSemaineManip;
    Donc ce que j'aimerai faire, c'est d'avoir tous les jours de la semaine avec le libellé, le numéro du mois et l'année.

    J'ai essayé un truc de ce genre mais c'est pas bon
    int numeroJourDebutSemaine = this.getDateDebut().getDate();

    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
    for(int i=1; i<8; i++){
    					//Gestion des libellé (lundi, mardi, ....)
    					JourDTO jourDto = new JourDTO();
    					if(i==1){
    						jourDto.setLibelle("lundi");
    						numeroDuJour = numeroJourDebutSemaine;
    						jourDto.setNumeroJour(numeroDuJour);
    						jourDto.setMois(moisDebutSemaineOk);
    						jourDto.setAnnee(anneeDebutSemaineOK);
    						System.out.println("jour "+jourDto.getLibelle());
    						System.out.println("N°"+jourDto.getNumeroJour());
    						System.out.println("Mois "+jourDto.getMois());
    						System.out.println("Annee"+jourDto.getAnnee());
     
    					}
    					if(i==2){
    						jourDto.setLibelle("mardi");
    //je rajoute un au numéro du jour						
    numeroDuJour = numeroJourDebutSemaine+1;
    						jourDto.setNumeroJour(numeroDuJour);
    						jourDto.setMois(moisDebutSemaineOk);
    						jourDto.setAnnee(anneeDebutSemaineOK);
    						System.out.println("jour "+jourDto.getLibelle());
    						System.out.println("N°"+jourDto.getNumeroJour());
    						System.out.println("Mois "+jourDto.getMois());
    						System.out.println("Annee"+jourDto.getAnnee());
    					}
    En effet, ce code n'est pas bon car si ma date de début est par exemple le lundi 31 mars
    si je fais "+1" au numéro du jour, j'aurai un mardi 32 mars


  5. #5
    Membre éprouvé
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Par défaut
    Uitlise la méthode add de la classe Calendar pour ajouter tes jours et un dateformatter ensuite pour avoir un rendu de ta date sous forme de string .

  6. #6
    Membre éclairé
    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
    Par défaut
    Merci beaucoup de votre réponse, et je suis navrée d'abuser de votre temps, mais pourriez vous me montrer un exemple de leur fonctionnement, ou m'indiquer où je peux trouver les bonne info

  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
    N'utilisez pas getDay/Month/Year sur les objet de type Date, ces méthodes sont dépréciées pour de bonnes raison. Passe toujours soit par un DateFormat (pour la conversion en String) ou Calendar pour l'extraction d'informations.

  8. #8
    Membre éclairé
    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
    Par défaut
    Quelqu'un pourrait me dire comment je peux faire pour manipuler l'objet date, l'objet calendar pour avoir tous les jours de la semaine à partir d'une date donnée, ou du moins me dire où je peux trouver les éléments de réponses (exemple de leur utilisation)

    Attribut de la classe action :
    Calendar calendrier= Calendar.getInstance();;
    Date dateDebut;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    calendrier.add(Calendar.DATE(this.getDateDebut()), 1);
    Vraiment navrée de vous embêter avec un truc qui doit vous paraitre d'une simplicité enfantine, mais c'est la première que je manipule les objets date et calendar et j'y comprend rien

    En plus je ne peux pas faire
    Calendar calendrier= new Calendar();

  9. #9
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 7
    Par défaut
    Avec l'objet Calendar, pour faire une déclaration on utilise plutôt:

    Calendar cal = Calendar.getInstance();

    et à partir de là tu peux ajouter des dates avec la méthode set(): (ex)

    cal.set(2012,04,22);

    J'ai pas bien saisi ton problème mais tu peux peut être utiliser Calendar.DAY_OF_WEEK

  10. #10
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Bon, c'est ma pose déjeuner ; alors on va aider un peu :

    On a :
    • une date de début : startDate
    • une date de fin: endDate


    on va donc faire une boucle while
    qui nous fait partir de startDate pour arriver à endDate
    tout en produisant le nom des jours de la semaine

    Un jour contient 86400000 millièmes de secondes (je les ai tous comptés )
    On passe d'un jour à l'autre en ajoutant 86400000 millièmes de secondes à dateCourante qui nous sert de compteur


    Dans l'exemple ci-dessous, on part de la date courante
    et on fait un test en créant une date de fin 5 jours plus tard

    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
            // ici on simule startDate et endDate car ils sont normalement alimentés par le DatePicker
           Date startDate = new Date();    // le moment de maintenant
            long unJour = 24 * 60 * 60 * 1000;   // un jour = 24 h * 60 minutes * 60 secondes * 1000 millièmes
            Date endDate = new Date(startDate.getTime() + unJour *5);   //  maintenant 5 jours plus tard
     
            // on prépare le formatage du jour pour avoir "mardi", "mercredi", etc
            // on peut bien sûr utiliser un autre format (voir doc) pour avoir "2012-05-22", "2012-05-23" etc
            SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
     
            // initialisation du compteur
            Date dateCourante = startDate;
     
            // ça tourne :
            while (dateCourante.getTime() < endDate.getTime()) {
                System.out.println(sdf.format(dateCourante));
                dateCourante = new Date(dateCourante.getTime() + unJour);
            }
    Maintenant, si tu as une importante problématique de Date/Heures à gérer,
    il vaut mieux prendre le temps d'étudier JodaTime
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  11. #11
    Membre éclairé
    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
    Par défaut
    Népomucène > Merci beaucoup pour votre exemple
    Je vais essayer de mon coté et vous direz si j'ai réussi

  12. #12
    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 Népomucène Voir le message

    Un jour contient 86400000 millièmes de secondes (je les ai tous comptés )
    Sacré approximation. Pour éviter ce genre d'erreur, comme déjà dit, utiliser Calendar. La javadoc de Calendar explique bien comment l'utiliser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Calendar debut = Calendar.getInstance();
    Calendar fin = Calendar.getInstance();
    debut.setTime(dateDebut);
    fin.setTime(dateFin);
    int cpteJours = 0; // si debut == fin, on a 1 jour
    do {
      int jour = debut.get(Calendar.DAY_OF_WEEK);
      if (jour != Calendar.SUNDAY && jour !=Calendar.SATURDAY)
         cpteJours++; 
      debut.add(Calendar.DAY,1); // jour suivant
    } while (debut.before(fin))

  13. #13
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Sacré approximation
    pourquoi ?
    La seule exception que je connaisse est lors du changement d'heure 2 fois par an (pas d'incidence avec un DatePicker).
    Par ailleurs, l'exemple que j'ai donné est fonctionnel.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  14. #14
    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
    Quand on change d'heure (sur les timezone qui le font), il 'y a que 23 ou 25 heures entre les jours. 23 heures ne vont pas de poser problème, mais 25 heures entre deux objets Date te font compter un jour de trop. Je laisse de coté les secondes intercalaires (je ne connais pas de machine qui les implémentes concrètement) et il reste aussi dans une bien moindre mesure les cas où tu dois gérer des combinaison période / pays qui te font tomber dans un moment où l'état a décidé de carrément changer de timezone

    Maintenant, si tu fais tout ton travail en UTC, tu n'aura pas de soucis à cet entdroit là puisqu'il n'y a pas d'heure hiver / été. Mais forcer l'UTC pour des calendrier pose d'autres problèmes, par exemple quand on stocke dans une base de donnée qui elle travaille en temps local...

  15. #15
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Moui, moui, moui ....

    C'est vrai que, une fois par an lors du passage à l'heure d'hiver, ma petite combine ne fonctionnera pas.
    Avec le programme que j'ai posté, le dimanche 28 octobre 2012 ne passe pas au lundi avant 2 tours !

    Merci de la rectification.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  16. #16
    Membre éclairé
    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
    Par défaut
    Népomucène > Super c'est exactement ceux que je voulais

    Par contre, j'ai pas compris le soucis qu'il pourrait y avoir en cas de changement de date ?

  17. #17
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Comme Tchize_ l'a détaillé avec la rigueur et la précision technique dont il est coutumier,

    Si :
    • ta date de début est avant le passage à l'heure d'hiver
    • et ta date de fin est après le passage à l'heure d'hiver

    alors il manquera un jour dans le décompte.

    J'ai adapté le code de Tchize_ pour y inclure un exemple qui vérifie l'absence de bug lors du passage à l'heure d'hiver :
    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
            SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy");
            SimpleDateFormat sdf2 = new SimpleDateFormat("EEEE d MMMM yyyy");
            Date dateDebut = sdf1.parse("27/10/2012");
            Date dateFin = sdf1.parse("31/10/2012");
            Calendar debut = Calendar.getInstance();
            Calendar fin = Calendar.getInstance();
            debut.setTime(dateDebut);
            fin.setTime(dateFin);
            int cpteJours = 0; // si debut == fin, on a 1 jour
            do {
                int jour = debut.get(Calendar.DAY_OF_WEEK);
    //            if (jour != Calendar.SUNDAY && jour !=Calendar.SATURDAY)              // activer cette ligne de code si on ne doit pas compter les samedi et dimanche
                    cpteJours++;
                debut.add(Calendar.DAY_OF_MONTH,1); // jour suivant
                System.out.println(sdf2.format(debut.getTime()));
     
            } while (debut.before(fin));
            System.out.println("cpteJours = " + cpteJours);
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  18. #18
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    La javadoc de Calendar explique bien comment l'utiliser.
    je rebondis sur cette remarque (après avoir les excellents posts de chacun) et je constate souvent ... à regret ... que peu de gens prend le temps de lire la JAVADOC des API ...

    C'est vraiment dommage car la JAVADOC (en tout cas sur les API de base) est vraiment très bien fournie et donne très souvent de bons exemples.

    enfin si elle ne suffit pas le tutorial JSE et le tutorial JEE officiel est aussi un mine d'or : tutorial JSE officiel : http://docs.oracle.com/javase/tutorial/index.html

    et puis Google c'est bien aussi, un petit tuto sur les Calendar :
    http://www.vogella.com/articles/Java...I/article.html

    loin de moi l'idée de vouloir donner des leçons (même si c'est mon métier ).

  19. #19
    Membre éclairé
    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
    Par défaut
    Ah d'accord ^^'. Merci des précisions

    Par contre, encore désolée de vous déranger avec çà, mais comment puis-je faire pour récupérer également la date de début dans le while pour alimenter ma base de donnée.

    Car à l'heure actuelle, je n'arrive pas à récupérer le lundi dans le while mais d'une manière détournée, ceux qui rend mon code tout pourri u_u


    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
    	    SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy");
            SimpleDateFormat sdf2 = new SimpleDateFormat("EE-dd-MM-yyyy");
            Date dateDebut = sdf1.parse("27/10/2012");
            Date dateFin = sdf1.parse("31/10/2012");
            Calendar debut = Calendar.getInstance();
            Calendar fin = Calendar.getInstance();
            debut.setTime(this.getDateDebut());
            fin.setTime(this.getDateFin());
            int cpteJours = 0; // si debut == fin, on a 1 jour
            debut.add(Calendar.DAY_OF_MONTH,0); // Pour récupérer la date de début
            System.out.println(sdf2.format(debut.getTime()));
     
            //On convertie la date en string pour récupérer les élements au bon format //Pour le lundi
            String sdfString = sdf2.format(debut.getTime());
     
            //Pour récupérer la date du début au bon format
            String libelle = sdfString.substring(0,4);//Pour avoir lun, mar, mer
        	System.out.println("Libelle :"+libelle);
     
        	String numeroJour = sdfString.substring(5,7); //pour avoir 1,2 ....31
        	System.out.println("numeroJour :"+numeroJour);
     
        	String mois = sdfString.substring(8,10);//pour avoir le mois 1 à 12
        	System.out.println("mois :"+mois);
     
        	String annee = sdfString.substring(11,15); //pour avoir l'année
        	System.out.println("annee :"+annee);
     
     
     
     
            //Pour récupere les jour de la semaine
            do {
            	 //On convertie la date en string pour récupérer les élements au bon format
     
     
                int jour = debut.get(Calendar.DAY_OF_WEEK);
     
                debut.add(Calendar.DAY_OF_MONTH,1); // jour suivant
                cpteJours++;
     
                String sdfStringSem = sdf2.format(debut.getTime());
                System.out.println(sdf2.format(debut.getTime()));
     
                libelle = sdfStringSem.substring(0,4);//Pour avoir lun, mar, mer
            	System.out.println("Libelle :"+libelle);
     
            	numeroJour = sdfStringSem.substring(5,7); //pour avoir 1,2 ....31
            	System.out.println("numeroJour :"+numeroJour);
     
            	mois = sdfStringSem.substring(8,10);//pour avoir le mois 1 à 12
            	System.out.println("mois :"+mois);
     
            	annee = sdfStringSem.substring(11,15); //pour avoir l'année
            	System.out.println("annee :"+annee);
            } while (debut.before(fin));

  20. #20
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Tu peux mettre -1 dans ton premier add
    pour faire commencer la boucle un jour avant

    (j'ai mis en commentaire le code redondant devenu inutile)

    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
    	    SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy");
            SimpleDateFormat sdf2 = new SimpleDateFormat("EE-dd-MM-yyyy");
            Date dateDebut = sdf1.parse("27/10/2012");
            Date dateFin = sdf1.parse("05/11/2012");
            Calendar debut = Calendar.getInstance();
            Calendar fin = Calendar.getInstance();
            debut.setTime(dateDebut);
            fin.setTime(dateFin);
            int cpteJours = 0; // si debut == fin, on a 1 jour
            debut.add(Calendar.DAY_OF_MONTH,-1); // Pour récupérer la date de début
    
    //        System.out.println(sdf2.format(debut.getTime()));
     
            //On convertie la date en string pour récupérer les élements au bon format //Pour le lundi
    //        String sdfString = sdf2.format(debut.getTime());
    // 
    //        //Pour récupérer la date du début au bon format
    //        String libelle = sdfString.substring(0,4);//Pour avoir lun, mar, mer
    //    	System.out.println("Libelle :"+libelle);
    // 
    //    	String numeroJour = sdfString.substring(5,7); //pour avoir 1,2 ....31
    //    	System.out.println("numeroJour :"+numeroJour);
    // 
    //    	String mois = sdfString.substring(8,10);//pour avoir le mois 1 à 12
    //    	System.out.println("mois :"+mois);
    // 
    //    	String annee = sdfString.substring(11,15); //pour avoir l'année
    //    	System.out.println("annee :"+annee);
     
     
     
     
            //Pour récupere les jour de la semaine
            do {
            	 //On convertie la date en string pour récupérer les élements au bon format
     
     
                int jour = debut.get(Calendar.DAY_OF_WEEK);
     
                debut.add(Calendar.DAY_OF_MONTH,1); // jour suivant
                cpteJours++;
     
                String sdfStringSem = sdf2.format(debut.getTime());
                System.out.println(sdf2.format(debut.getTime()));
     
                String libelle = sdfStringSem.substring(0,4);//Pour avoir lun, mar, mer
            	System.out.println("Libelle :"+libelle);
     
            	String numeroJour = sdfStringSem.substring(5,7); //pour avoir 1,2 ....31
            	System.out.println("numeroJour :"+numeroJour);
     
            	String mois = sdfStringSem.substring(8,10);//pour avoir le mois 1 à 12
            	System.out.println("mois :"+mois);
     
            	String annee = sdfStringSem.substring(11,15); //pour avoir l'année
            	System.out.println("annee :"+annee);
                    
            } while (debut.before(fin));
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Récupérer tous les jours entre deux dates
    Par GsusNET dans le forum Développement
    Réponses: 7
    Dernier message: 26/07/2023, 12h44
  2. Réponses: 8
    Dernier message: 19/10/2011, 20h03
  3. [Batch] SCHTASKS tous les jours de la semaine sauf dimanche
    Par VassR dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 02/10/2011, 20h37
  4. Réponses: 2
    Dernier message: 26/02/2008, 00h40
  5. Réponses: 1
    Dernier message: 03/07/2007, 07h43

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