[Java] GregorianCalendar

Fermé
xav3601 Messages postés 3289 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 - 11 mars 2010 à 15:57
 Utilisateur anonyme - 13 mars 2010 à 01:16
Bonjour,


J'ai un petit soucis avec l'utilisation du calendar en java...

En fait je voudrais que le premier jour de la semaine soit le lundi.
Et donc que par la suite quand je récupére le jour de la semaine, si je suis un lundi je récupère 1.

Voilà mon code:

Calendar ldDatePassage = new GregorianCalendar();
ldDatePassage.setFirstDayOfWeek(Calendar.MONDAY);
ldDatePassage.setTime(loTempDatePsgTrp.getDatePsgTrp());

Mais si par exemple loTempDatePsgTrp.getDatePsgTrp()); est le 14/03/2010 (donc dimanche prochain) quand je fais ensuite:

ldDatePassage.get(Calendar.DAY_OF_WEEK)

Je récupère 1 alors que je voudrais récupèrer 7!!


Vous voyez ou sa cloche?

Merci d'avance!

A voir également:

2 réponses

Utilisateur anonyme
13 mars 2010 à 01:16
Salut,

tu peux peut-être t'inspirer de ce code:

        	
      //date initiale:
         int jj = 12;
         int mm = 3;	
         int an = 2010;
      	
         GregorianCalendar cal = new GregorianCalendar(an, mm -1 ,jj);
       // obtention des composants de la date :
         int annee = cal.get(Calendar.YEAR);
         int mois = cal.get(Calendar.MONTH);
         int jour = cal.get(Calendar.DAY_OF_MONTH);
         int num_jour = cal.get(Calendar.DAY_OF_WEEK);
         
         System.out.println("\n\nJours de la semaine:\n"
            + "dim. = 1, lun. = 2, mar. = 3, mer. = 4, jeu. = 5, ven. = 6, sam. = 7");
         
         System.out.println("\n\nDate: " + jour + "/" + (mois +1) + "/" + annee);
         System.out.println("Jour de la semaine: " + num_jour);
         
         if(num_jour != 2) // si ce n'est pas un lundi
         {
            cal = new GregorianCalendar(an, mois ,jj + ((7 -num_jour) +2));
            annee = cal.get(Calendar.YEAR);
            mois = cal.get(Calendar.MONTH);
            jour = cal.get(Calendar.DAY_OF_MONTH);
            num_jour = cal.get(Calendar.DAY_OF_WEEK);
            System.out.println("\n\nDate: " + jour + "/" + (mois +1) + "/" + annee);
         }
         System.out.println("Jour de la semaine: " + num_jour);


Cordialement,

Dan
1
xav3601 Messages postés 3289 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
11 mars 2010 à 16:31
Je vais essayer de contourner le problème mais c pas gagné ^^


Edit: voila la formule a utiliser:

ldDatePassage.get(Calendar.DAY_OF_WEEK)+5)%7
0