Probleme dans java
Sleem_
Messages postés
76
Statut
Membre
-
Aminjer Messages postés 54 Statut Membre -
Aminjer Messages postés 54 Statut Membre -
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 .
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 .
Configuration: Windows XP Firefox 3.0.16
15 réponses
-
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
@+ -
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;
} -
la même erreur, lors que je compile la classe test:
integer number too large: 08
j'ai vraiment besoin de votre aide. -
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. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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.
-
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 ;-) -
-
-
Fichtre !
Bravo Chuka ! J'aurai cru que Java aurait interprêté le 08 automatiquement comme un 8 car le 0 n'est pas significatif ! -
mais quelle est l'utilité de préfixer Date par le signe "_" ? (_Date)
-
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. -
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!!;)
@+
-
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.
@+ -
ç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. -
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()));
}
}
/////////////////////////////////////////////
@+;