Probleme pour changer d'année (date) JAVA

Fermé
sean - 9 nov. 2008 à 22:03
 Utilisateur anonyme - 10 nov. 2008 à 10:59
Bonjour,

J'affiche une date sous la forme :
debutSemaine(lundi) -> finSemaine(vendredi)
Exemple : 3/10/2008 -> 7/10/2008

Je possède un boutonPrecedent et un boutonSuivant pour faire varier la date.
Mon problème se situe quand je veux changer d'année en cliquant sur le boutonSuivant.

J'arrive à passer en 2009 correctement, mais pas en 2010 etc.

//j'appelle la méthode suivante dans l'actionPerformed de mon boutonSuivant

int compteur = 0;
public void afficherSemaineSuivante(){

Calendar c = Calendar.getInstance(Locale.FRENCH);
int anneeEnCours = c.get(Calendar.YEAR);

//je teste si le numéro de la semaine que j'affiche est supérieur au nombre de semaine dans l'année en cours
if(nouveauNumSemaine > nombreDeSemaineDansLannee(Locale.FRENCH, anneeEnCours))
{
compteur++;
nouveauNumSemaine = compteur;
anneeEnCours = anneeEnCours + 1;
}

//méthode qui permet d'afficher la date en fonction du numéro de la semaine et de l'année en cours
semaine(nouveauNumSemaine,anneeEnCours);

}
A voir également:

1 réponse

Utilisateur anonyme
10 nov. 2008 à 10:59
Salut,

Je ne comprend pas ton exemple.

debutSemaine(lundi) -> finSemaine(vendredi)
Exemple : 3/10/2008 -> 7/10/2008

Le 3/10/2008 était un vendredi, pas un lundi et le 7/10/2008 un mardi pas un vendredi.

Il faudrait d'abord commencer avec une bonne date de départ par exemple :

Voilà ce que je te propose:

..........
static String Sjour = "";
static String Sn_mois = "";
static int annee = 0;
static int num_mois = 0;
static int n_mois = 0;
static int jour = 0;
...........


int p1 = 2008;
int p2 = 10;
int p3 = 27;

Calendar cal = new GregorianCalendar(p1, p2-1, p3); // 9 pour octobre le mois obtenu (ou fourni) = 0 à 11


annee = cal.get(Calendar.YEAR);
num_mois = cal.get(Calendar.MONTH);
n_mois = num_mois +1;
jour = cal.get(Calendar.DAY_OF_MONTH);

zeroAgauche();

System.out.print("Semaine de depart " + Sjour + "/" + Sn_mois + "/" + annee + " >>>> ");

p3 = p3 + 4;
cal = new GregorianCalendar(p1, p2-1, p3);

annee = cal.get(Calendar.YEAR);
num_mois = cal.get(Calendar.MONTH);
n_mois = num_mois +1;
jour = cal.get(Calendar.DAY_OF_MONTH);

zeroAgauche();

System.out.println(Sjour + "/" + n_mois + "/" + annee);

// A partir de cette semaine de depart:
// chaque fois que tu clique buton suivant

for (int is = 0; is < 81; is++) // boucle de simulation
{
p3 = p3 +1;
cal = new GregorianCalendar(p1, p2-1, p3); // 9 pour octobre le mois obtenu (ou fourni) = 0 à 11


annee = cal.get(Calendar.YEAR);
num_mois = cal.get(Calendar.MONTH);
n_mois = num_mois +1;
jour = cal.get(Calendar.DAY_OF_MONTH);

zeroAgauche();

System.out.print("Semaine suivante " + Sjour + "/" + Sn_mois + "/" + annee + " >>>> ");

p3 = p3 + 4;
cal = new GregorianCalendar(p1, p2-1, p3);

annee = cal.get(Calendar.YEAR);
num_mois = cal.get(Calendar.MONTH);
n_mois = num_mois +1;
jour = cal.get(Calendar.DAY_OF_MONTH);

zeroAgauche();

System.out.println(Sjour + "/" + Sn_mois + "/" + annee);
}

// et chaque fois que tu clique buton precedent :
for (int ip = 0; ip < 81; ip++) // boucle de simulation
{
p3 = p3 -9;
cal = new GregorianCalendar(p1, p2-1, p3);


annee = cal.get(Calendar.YEAR);
num_mois = cal.get(Calendar.MONTH);
n_mois = num_mois +1;
jour = cal.get(Calendar.DAY_OF_MONTH);

zeroAgauche();

System.out.print("Semaine precedente " + Sjour + "/" + Sn_mois + "/" + annee + " >>>> ");

p3 = p3 + 4;
cal = new GregorianCalendar(p1, p2-1, p3);

annee = cal.get(Calendar.YEAR);
num_mois = cal.get(Calendar.MONTH);
n_mois = num_mois +1;
jour = cal.get(Calendar.DAY_OF_MONTH);

zeroAgauche();

System.out.println(Sjour + "/" + Sn_mois + "/" + annee);
}

}

public static String zeroAgauche()
{
// forcer 1 zéro à gauche si jour ou mois < 10
Sjour = (jour<10?"0":"") + jour;
Sn_mois = (n_mois<10?"0":"") + n_mois;
return "";
}
}
0