Rechercher : dans
Par :

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

Dernière réponse le 10 nov 2008 à 10:59:00 sean, le 9 nov 2008 à 22:03:46 
 Signaler ce message aux modérateurs

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);

}

Configuration: Windows XP
Firefox 2.0.0.17

Meilleures réponses pour « probleme pour changer d'année (date) JAVA » dans :
Samsung player one - Changer la date et l'heure VoirProblème Comment changer la date et l'heure sur le samsung player one car le téléphone est paramétré en 1980. Solution Pour régler l'heure et la date, aller dans paramètres > "heure et date", puis descendre en bas de la fenêtre et modifier les...
Javascript - L'objet Date VoirLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La...
Java: les opérateurs VoirQu'est-ce qu'un opérateur? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, ... On distingue plusieurs types d'opérateurs : les opérateurs de calcul les...

1

 danimo, le 10 nov 2008 à 10:59:00

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 "";
}
}

Répondre à danimo
Collection CommentÇaMarche.net