Probleme pour changer d'année (date) JAVA
sean
-
Utilisateur anonyme -
Utilisateur anonyme -
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);
}
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:
- Probleme pour changer d'année (date) JAVA
- Changer dns - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
1 réponse
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 "";
}
}
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 "";
}
}