Probleme dans java

Fermé
Sleem_ Messages postés 54 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 26 février 2011 - 28 déc. 2009 à 18:52
Aminjer Messages postés 47 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 11 août 2011 - 1 janv. 2010 à 19:46
Bonjour,
bonsoir;
Je viens de faire le code d'un programme java qui à pour objectif de modéliser un objet Personne caractérisé par son: nom, prénom, sexe, date de naissance et adresse.
on me demande de faire une classe date qui permet de construire une date et de l'afficher sous la forme jj/mm/aaaa.
J'ai réalisé cette classe date, comme suit:


public class Date{
int j,m,a;

public Date(int j,int m, int a){ //constructeur de la classe date
this.j=j;
this.m=m;
this.a=a;
}

//debut de la methode affichage date
void affichage (){
if ((j>9) && (m>9)){
System.out.println(j+"/"+m+"/"+a);
}
else
if ((j<=9)&&(m<=9)){
System.out.println("0"+j+"/"+"0"+m+"/"+a);
}
else
if (m<=9){
System.out.println(j+"/"+"0"+m+"/"+a);
}else{
System.out.println("0"+j+"/"+m+"/"+a);
}


}
//fin de la methode affichage date


}

Et j'ai aussi réalisé la classe personne, comme suit:

public class Personne{
String nom,prenom,sexe,adresse;
Date d;

//constructeur de classe personne
public Personne(String nom,String prenom,String sexe,String adresse, int j,int m,int a){
this.nom=nom;
this.prenom=prenom;
this.sexe=sexe;
this.adresse=adresse;
this.d.j=j;
this.d.m=m;
this.d.a=a;
}
//fin modelisation du constructeur

void infopersonne(){
System.out.println(nom);
System.out.println(prenom);
System.out.println(sexe);
System.out.println(adresse);
d.affichage();
}


}

Et j'ai réalisé une classe de test:

public class Test{
public static void main (String [] args){
Personne a1=new Personne("Jackson","Micheal","masculin","Canada",23,08,1988);
a1.infopersonne();

}
}

Mais ça ne fonctionne pas, avec un message d'erreur:
integer number too large: 08

merci de bien me rectifier les erreurs que j'ai commis.
Cordialement .
A voir également:

15 réponses

chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
28 déc. 2009 à 21:27
Salut,
essaye cela:
class _Date{
int j,m,a;

public _Date(int j,int m, int a){ //constructeur de la classe date
this.j=j;
this.m=m;
this.a=a;
}


//debut de la methode affichage date
void affichage (){
if ((j>9) && (m>9)){
System.out.println(j+"/"+m+"/"+a);
}
else
if ((j<=9)&&(m<=9)){
System.out.println("0"+j+"/"+"0"+m+"/"+a);
}
else
if (m<=9){
System.out.println(j+"/"+"0"+m+"/"+a);
}else{
System.out.println("0"+j+"/"+m+"/"+a);
}


}
//fin de la methode affichage date


}



class Personne{
String nom,prenom,sexe,adresse;
_Date d;

//constructeur de classe personne
public Personne(String nom,String prenom,String sexe,String adresse, _Date d){
this.nom=nom;
this.prenom=prenom;
this.sexe=sexe;
this.adresse=adresse;
this.d=d;
}
//fin modelisation du constructeur

void infopersonne(){
System.out.println(nom);
System.out.println(prenom);
System.out.println(sexe);
System.out.println(adresse);
d.affichage();
}


}


public class Main{
public static void main (String [] args){
Personne a1=new Personne("Jackson","Micheal","masculin","Canada",new _Date(23,8,1988));
a1.infopersonne();

}
}

le prb vient du 08..il suffit de mettre 8
@+
1
BadGuitarist Messages postés 367 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 27
28 déc. 2009 à 19:22
Tu n'as pas instancié ton objet Date avant de l'initialiser :

public Personne(String nom,String prenom,String sexe,String adresse, int j,int m,int a)
{
this.nom=nom;
this.prenom=prenom;
this.sexe=sexe;
this.adresse=adresse;
d = new Date();
this.d.j=j;
this.d.m=m;
this.d.a=a;
}
0
Sleem_ Messages postés 54 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 26 février 2011
28 déc. 2009 à 19:29
la même erreur, lors que je compile la classe test:
integer number too large: 08
j'ai vraiment besoin de votre aide.
0
BadGuitarist Messages postés 367 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 27
28 déc. 2009 à 19:39
Fais le test suivant : limite ta méthode affichage() à cela :

//debut de la methode affichage date
void affichage()
{
System.out.println("0"+j+"/"+"0"+m+"/"+a);
}

!ah je viens de voir que tu as mis un espace entre affichage et (). Il faut que tu l'enlèves.

A tout à l'heure.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sleem_ Messages postés 54 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 26 février 2011
28 déc. 2009 à 19:48
je pense que le problème se situe dans le constructeur de la classe Personne, au niveau de l'intégration de l'objet Date d.
0
BadGuitarist Messages postés 367 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 27
28 déc. 2009 à 19:52
Eh bien enleve l'attribut Date et toutes les références sur cette classe.

Et regarde ce que cela donne. Si ça s'execute alors tu as raison ;-)
0
Sleem_ Messages postés 54 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 26 février 2011
28 déc. 2009 à 21:12
oui c'est ça le problème.
alors, comment puis-je corriger?
0
Sleem_ Messages postés 54 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 26 février 2011
28 déc. 2009 à 23:24
merci chuka;
oui le problème est un zéro!
0
BadGuitarist Messages postés 367 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 27
28 déc. 2009 à 23:30
Fichtre !
Bravo Chuka ! J'aurai cru que Java aurait interprêté le 08 automatiquement comme un 8 car le 0 n'est pas significatif !
0
Sleem_ Messages postés 54 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 26 février 2011
29 déc. 2009 à 00:30
mais quelle est l'utilité de préfixer Date par le signe "_" ? (_Date)
0
BadGuitarist Messages postés 367 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 27
29 déc. 2009 à 00:37
Aucun si ce n'est d'éviter que ta classe perso ait le même nom que la classe déjà implémentée dans java.
Que Chuka ait renommé ta classe Date en _Date ou en MaDate, cela revenait au même.
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
29 déc. 2009 à 08:16
Fichtre !
J'aurai cru que Java aurait interprêté le 08 automatiquement comme un 8 car le 0 n'est pas significatif !

Ben moi aussi.....C'est pour cela que je suis parti dans un délire _Date...me suis dis peut-être qu'il y a une class Date qui existe déjà et qui fait chier.....
Comme quoi des fois on se prend la tete pour pas grand chose!!;)
@+
0
Aminjer Messages postés 47 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 11 août 2011
29 déc. 2009 à 10:42
Bonjour,
Oui vraiment il y on a plusieurs classes qui facilite la tache j'ai un exemple qui affiche trois formats
différentes de la date :

import java.util.*;
import java.text.*;

public class TestDate {

static DateFormat df= DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.ENGLISH);
static DateFormat dg= DateFormat.getDateInstance(DateFormat.FULL,Locale.FRANCE);
static SimpleDateFormat sdt=new SimpleDateFormat("dd/MM/yyyy");


public static void main (String[]args) throws ParseException{
Scanner s=new Scanner(System.in);

Date d =sdt.parse("19/01/1987");
System.out.println(df.format(d));
System.out.println(dg.format(new Date()));
System.out.println(sdt.format(new Date()));
Date d1=sdt.parse(s.next());
System.out.println(df.format(d1));
}
}

******la resultat **********
Jan 19, 1987 *
mardi 29 décembre 2009 *
29/12/2009 *
************************
Alors tu vas utilise la troisième forme qui répond a votre question.
Bonne journée.
@+
0
Sleem_ Messages postés 54 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 26 février 2011
29 déc. 2009 à 23:53
ça marche pas avec cette classe: il y a une erreur lors de la compilation.L'erreur est:
illegal character: \173
merci de bien vouloir m'aider à résoudre ce problème.
Cordialement.
0
Aminjer Messages postés 47 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 11 août 2011
1 janv. 2010 à 19:46
Bonsoir,
Pour moi le code ca marche c vraiment bizarre .

Cette classe je l'utilise pour avoir une date complet avec l'heure (en français):
ca marche pour moi 100%.
/////////////////////////////////////
import java.text.*;
import java.util.*;

public class DateFR {



public static String getFrenchDate()
{
DateFormat dg= DateFormat.getDateInstance(DateFormat.FULL,Locale.FRANCE);
Date d = new Date(System.currentTimeMillis());
return dg.format(new Date())+" "+d.getHours()+"h"+d.getMinutes()+"mn"+d.getSeconds()+"s";
}

public static void main (String[]args)throws ParseException{
System.out.println(getFrenchDate());
//System.out.println(dg.format(new Date()));
}
}
/////////////////////////////////////////////

@+;
0