Calendar

ethelrind Messages postés 1 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 22 mars 2011 - 22 mars 2011 à 12:40
 Utilisateur anonyme - 23 mars 2011 à 00:53
Bonjour,
quelqu'un pourrait il me montrer comment utiliser la classe Calendar pour convertir un string en Calendar et ce qu'il faut utiliser pour effectuer des calculs sur les différents objets Calendar? je ne m'y retrouve pas

2 réponses

Utilisateur anonyme
22 mars 2011 à 23:21
Salut,

Pour ce genre de question, tu peux déjà t'orienter sur l'API de Calendar.

Sinon ça me surprend de vouloir convertir un String en Calendar. Tu veux pas transformer une chaine en date plutôt ? Regarde dans ce cas l'API de Date

Qu'est-ce que tu entends pas "des calculs sur les différents objets Calendar" ?
0
Utilisateur anonyme
23 mars 2011 à 00:53
Salut,

Voici un petit exemple de calcul:
//Un exemple simple de calcul avec Calendar
//Quel jour serons-nous dans 5 jours en utilisant Calendar et sa sous-classe GregorianCalendar

   import java.io.*;
   import java.util.Calendar;
   import java.util.GregorianCalendar;

   public class QuelJourSeronsNous
   {
   // Au cas où nous ne voudrions pas utiliser DateFomat
    //2 tables : TAB_JOURS[], et TAB_MOIS[]
      private static final String[] TAB_JOURS = {"dimanche", "lundi", "mardi", "mercredi", "jeudi",
         "vendredi", "samedi"};
   
      private static final String[] TAB_MOIS = {"janvier", "février", "mars", "avril", "mai", "juin", "juillet",
         "août", "septembre", "octobre", "novembre", "décembre"};
   
      public static void QuelJourSeronsNous()
      {
         String ligne = "";
      
         int nbreJours = 5; // dans 5 jours
      
      
         // obtention de la date du jour
         Calendar cal = Calendar.getInstance();
         
         // obtention des éléments de la date du jour
         int annee = cal.get(Calendar.YEAR);
         int num_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("annee: " + annee + "\n"
            + "num_mois = " + num_mois + " sachant que Calendar retourne un int de 0 à 11\n"
            + "jour = " + jour + " sachant que Calendar retourne un int de 1 à 31\n"
            + "num_jour = "  + num_jour + " sachant que Calendar retourne un int de 1 a 7");
         
         // pour transformer le jour 1 possible en "1er"(donc de int à String) ...
         // ... il faut d'abord convertir int jour en String jourS
         String jourS = Integer.toString(jour);
         if (jourS.equals("1")) jourS = "1er";
         
         ligne = "\n Nous sommes le " + TAB_JOURS[num_jour - 1] + ", " + jourS + " "
                  + TAB_MOIS[num_mois] + " " + annee + "\n\n";
         
         // entrée des paramètres de la nouvelle date (celle que nous cherchons)
      	// Ces 3 paramètres sont toujours (année, mois, jour)
         cal = new GregorianCalendar(annee, num_mois, jour + nbreJours); // c'est déjà un calcul
         
         // obtention des éléments de cette nlle date
         annee = cal.get(Calendar.YEAR);
         num_mois = cal.get(Calendar.MONTH);
         jour = cal.get(Calendar.DAY_OF_MONTH);
         num_jour = cal.get(Calendar.DAY_OF_WEEK);
         
         // pour transformer le jour 1 possible en "1er"(donc de int à String) ...
         // ... il faut d'abord convertir int jour en String jourS
         jourS = Integer.toString(jour);
         if (jourS.equals("1")) jourS = "1er";
         
         
         ligne+= " Quel jour serons-nous dans " + nbreJours + " jour" + (nbreJours>1?"s":"") + " ?\n";

         ligne+= " Nous serons le " + TAB_JOURS[num_jour -1] + ", " + jourS + " " + TAB_MOIS[num_mois]
                  + " " + annee + "\n\n";
         javax.swing.JOptionPane.showMessageDialog(null,ligne);
      }
      
      public static void main (String[] args)
      {
         QuelJourSeronsNous();
         System.exit(0);
      }
   }


On ajoute 5 jours à la date du jours et bien entendu on pourait ajouter un nombre de mois au paramètre mois, ou un nombre d'années au paramètre annee.

Remarque:
Il y a une condition pour que ça fonctionne, ne pas être dans le cas du contrôle de la validité d'une date (setLenient(false);).

Compile ce code, teste le et pose moi des questions si tu éprouves des difficultés à le comprendre.

Cordialement,

...\ Dan /...
0
Rejoignez-nous