Pb en Java

Skunk -  
 Utilisateur anonyme -
Bonjour, j'ai une problème aavec mon programme Java et j'aurais besoin de votre aide.
Mon problème et dans la fonction public String toString() dans la partie du else du if je n'arrive pas a écrire une date du genre lundi 24 décembre 2004 dans ma chaine de caractère aff avec les données de private String chaineDuJour(int leJour) et private String chaineDuMois(int leMois)
Je vous met mon, programme ci dessous.

J'ai deja fais mon main ;)


package td2;

import java.util.Calendar;

public class Date {

private int jour;
private int jourSemaine;
private int mois;
private int annee;
private boolean affichageCourt = false;
private static final String sep = ":";

public void affichageCourt(boolean mode) {
}

public Date() {
this(Calendar.getInstance().get(Calendar.DAY_OF_MONTH),
Calendar.getInstance().get(Calendar.MONTH),
Calendar.getInstance().get(Calendar.YEAR));
}

public Date(int j, int m, int a) {
jour = j;
mois = m ;
annee = a;
normalise();

}

public void normalise() {
calendar2Date(date2Calendar());


}

private Calendar date2Calendar() {
Calendar c = Calendar.getInstance();
c.set(annee, mois, jour);

return c;
}

private void calendar2Date(Calendar c) {
jour = c.get(Calendar.DAY_OF_MONTH);
mois = c.get(Calendar.MONTH);
jourSemaine = c.get(Calendar.DAY_OF_WEEK);
annee = c.get(Calendar.YEAR);
}

public void anneeProchaine() {
annee += 1;
normalise();
}

public void moiProchain() {
mois += 1;
normalise();
}

public void jourProchain() {
jour += 1;
normalise();
}

public String toString() {
String aff = "";
if (affichageCourt = false) {
aff = jour + "/" + (mois + 1 ) + "/" + annee;
}
else {
aff =
}

return aff;
}

private String chaineDuJour(int leJour) {
String jourBis = "";
switch (jour) {
case 1:
jourBis = "Dimanche";
break;
case 2:
jourBis = "Lundi";
break;
case 3:
jourBis = "Mardi";
break;
case 4:
jourBis = "Mercredi";
break;
case 5:
jourBis = "Jeudi";
break;
case 6:
jourBis = "Vendredi";
break;
case 7:
jourBis = "Samedi";
break;
}
return jourBis;
}

private String chaineDuMois(int leMois) {
String MoisBis = "";
switch (jour) {

case 0:
MoisBis = "Janvier";
case 1:
MoisBis = "Fevrier";
break;
case 2:
MoisBis = "Mars";
break;
case 3:
MoisBis = "Avril";
break;
case 4:
MoisBis = "Mai";
break;
case 5:
MoisBis = "Juin";
break;
case 6:
MoisBis = "Juillet";
break;
case 7:
MoisBis = "Aout";
break;

case 8:
MoisBis = "Septembre";
break;
case 9:
MoisBis = "Octobre";
break;
case 10:
MoisBis = "Novembre";
break;
case 11:
MoisBis = "Decembre";
break;


}
return MoisBis;
}
}
A voir également:

4 réponses

Skunkyy Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Pour ton :
private String chaineDuMois(int leMois) {
String MoisBis = "";
switch (jour) {


il faut changer ta donner du switch jour en mois et sinon moi j'ai essayer en enlevant les paramètre de tes classe string chaineDuJour et chaineDuMois et en mettant dans ton else : aff = chaineDuJour()+" "+ jour+" " + chaineDuMois()+" " + annee ;
0
Utilisateur anonyme
 
Salut,

Voici un exemple pour afficher la date du jour sous la forme:
Nous sommes le <Jour_semaine> <jour_mois> <Mois> <annee>

  public class AfficheDateDuJour
   { 
  
      private int jour; 
      private int jourSemaine; 
      private int mois; 
      private int annee;
      
      private String jourBis;  
      private String MoisBis;
      
       public void afficherDateDuJour()
      {
         Calendar cal = Calendar.getInstance(); 
         jour = cal.get(Calendar.DAY_OF_MONTH); 
         mois = cal.get(Calendar.MONTH); 
         jourSemaine = cal.get(Calendar.DAY_OF_WEEK); 
         annee = cal.get(Calendar.YEAR);
         
         String jourS  = Integer.toString(jour);
         if(jour == 1)
            jourS = "1er";
         
         
         chaineDuJour(jourSemaine); // retourne jourBis (jour = 1 a 1 >> case 1 a 7
         chaineDuMois(mois); // retourne MoisBis (mois = 0 a 11 >> case 0 a 11)
         String aff = "Nous sommes le " + jourBis + " " + jourS + " " + MoisBis + " " + annee;
         System.out.println("\n" + aff);
      } 
       
   // Tes 2 méthodes:
       private String chaineDuJour(int jourSemaine)
      { 
         jourBis = ""; 
         switch (jourSemaine) { 
            case 1: 
               jourBis = "Dimanche"; 
               break; 
            case 2: 
               jourBis = "Lundi"; 
               break; 
            case 3: 
               jourBis = "Mardi"; 
               break; 
            case 4: 
               jourBis = "Mercredi"; 
               break; 
            case 5: 
               jourBis = "Jeudi"; 
               break; 
            case 6: 
               jourBis = "Vendredi"; 
               break; 
            case 7: 
               jourBis = "Samedi"; 
               break; 
         } 
         return jourBis; 
      } 
   
       private String chaineDuMois(int leMois) { 
         MoisBis = "";
        //switch (jour) {  
         switch (leMois) { 
         
            case 0: 
               MoisBis = "Janvier"; 
            case 1: 
               MoisBis = "Fevrier"; 
               break; 
            case 2: 
               MoisBis = "Mars"; 
               break; 
            case 3: 
               MoisBis = "Avril"; 
               break; 
            case 4: 
               MoisBis = "Mai"; 
               break; 
            case 5: 
               MoisBis = "Juin"; 
               break; 
            case 6: 
               MoisBis = "Juillet"; 
              break; 
            case 7: 
               MoisBis = "Aout"; 
              break; 
            case 8: 
               MoisBis = "Septembre"; 
               break; 
            case 9: 
               MoisBis = "Octobre"; 
               break; 
            case 10: 
               MoisBis = "Novembre"; 
               break; 
            case 11: 
               MoisBis = "Decembre"; 
               break;    
         } 
         return MoisBis; 
      } 
   }


Appel depuis le programme utilisateur:

AfficheDateDuJour objAff = new AfficheDateDuJour();
         objAff.afficherDateDuJour();


Cordialement,

Dan
0
Skunkyy Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Dan, je suis le copain de skunk, ton prog marche bien mais enfete, lui il voudrais qu'on modifi pas son programme et il faut juste remplir le aff dans public String toString() { sans rien toucher dans le reste de la classe et on sais pas comment faire apart avec la methode que j'ai écrite plus haut !

Sinon merci pour ta version =)
0
Utilisateur anonyme
 
Re,

public String toString() { // peut.être en passant (int jourSemaine, int jour, int mois, int annee) en paramètres.
String aff = ""; 
if (affichageCourt = false) { 
aff = jour + "/" + (mois + 1 ) + "/" + annee; 
} 
else {
         chaineDuJour(jourSemaine); // retourne jourBis (jour = 1 a 7 >> case 1 a 7
         chaineDuMois(mois); // retourne MoisBis (mois = 0 a 11 >> case 0 a 11)
          aff = "Nous sommes le " + jourBis + " " + jour + " " + MoisBis + " " + annee;
         System.out.println("\n" + aff);
         }


Cordialement,

Dan
0
Utilisateur anonyme
 
salut
regarde la classe DateFormatSymbols, elle contient deja le nom du mois a partir de son numéro, plus besoin de switch...
0