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 /...