IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Compatibilité int et String


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 55
    Points : 33
    Points
    33
    Par défaut Compatibilité int et String
    Bonjour à tous,

    J'ai un problème de compatibilité de type :

    Pour calculer une différence entre deux valeurs des dates, j'ai besoin de passer par une méthode de type int, en lui passant un String en paramètre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public int getDifferenceDate (String p_rundate) { traitement }
    Evidemment, il serait très simple de parser en Integer ce paramètre mais il s'agit d'une date et j'ai besoin de la garder en String. De plus, ma méthode calcule une différence entre deux dates, en passant par des substring, et me renvoie un nombre de jours.

    Le problème est que dans ma classe qui appelle cette méthode, je veux créer un objet differenceDate en int et lui appliquer cette méthode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     int differenceDate = 0;
    differenceDate.getDifferenceDate(p_rundate);
    Mais j'ai ce warning :
    The method getDifferenceDate(String) is undefined for the type Integer
    C'est sûrement quelque chose d'évident mais là je ne vois pas ce qui ne va pas.

    Quelqu'un aurait-il une suggestion ?

    Merci d'avance pour votre aide.

  2. #2
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Bonjour.

    Affiche ton code parce que là c'est plutôt confus.

    Ta méthode getDifferenceDate est définie où?

    Pourquoi tu n'utilises pas le type Date ou Calendar plutôt qu'un String pour représenter une date.

    Un int n'est pas un objet, il est évident que tu ne peux pas appeler une hypothétique méthode getDifferenceDate dessus.

    Bref, donne nous plus d'élément.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 55
    Points : 33
    Points
    33
    Par défaut
    Merci de m'avoir répondu si rapidement !

    Alors ma méthode est définie dans une classe appelée Run dont voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    public class Run {
    ...
     
    public int getDifferenceDate (String p_rundate) {
     
    int difference = 0;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
    Date today = new Date(); // donc date syteme
     
    String todayFormated = sdf.format(today);
     
        // get today's day in integer:
    Integer todayDay = Integer.parseInt(todayFormated.substring(8, 10));
        // get the today's month in integer :
    Integer todayMonth = Integer.parseInt(todayFormated.substring(5, 7));
     
        // get the today's year in integer :
    Integer todayYear = Integer.parseInt(todayFormated.substring(0, 4));
        // same thing with the parameter p_rundate :
    Integer runDay = Integer.parseInt(p_rundate.substring(8, 10));
    Integer runMonth = Integer.parseInt(p_rundate.substring(5, 7));
    Integer runYear = Integer.parseInt(p_rundate.substring(0, 4));
     
        // calculate the difference between these two dates :
    difference = (todayDay - runDay )+ (( todayMonth - runMonth)*30 )+ (( todayYear - runYear )*365);
     
        return difference;
        }
    }
    et dans mon autre classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import com.tool.metier.Run;
    ...
    public class Dao_Run {
    ...
     
    public String GetInfo(String p_rundate)
        {
    ...
    // difference between today and the choosen date of run : 
    int differenceDate = 0; // meme probleme en Integer...
    differenceDate.getDifferenceDate(p_rundate);
    ...}
    }
    Voyez-vous mon soucis ?

  4. #4
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Ben ton soucis c'est que tu appelle la méthode getDifferenceDate sur un int alors qu'il s'agit d'une méthode de la classe Run.

    Il te faut donc une instance de la classe Run pour pouvoir l'exécuter, et ensuite tu affectes le résultat à une variable de type int.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public class Dao_Run {
    ...
     
    public String GetInfo(String p_rundate)
    {
       ...
       // difference between today and the choosen date of run
     
       Run run = new Run();
     
       int differenceDate = run.getDifferenceDate(p_rundate);
       ...
    }
     
    }


    Au passage, il faut utiliser la balise [code] pour présenter du code, c'est beaucoup plus lisible.

    PS : Si tu début en java, cette page te sera certainement utile.

    PS2 : en java, il y a des conventions d'écriture, notamment pour la casse des noms de méthodes, cf le doc suivant : ftp://ftp-developpez.com/cyberzoide/java/JavaStyle.pdf

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 55
    Points : 33
    Points
    33
    Par défaut
    Mais c'est biensûr ! Eh bien les basiques ne sont pas bien assimilés...

    Merci pour ces judicieux conseils

    PS: pour les conventions de nommage : oups en effet il y avait par erreur une majuscule à ma méthode getInfo()...Par contre je ne savais pas pour le soulignement à proscrire dans les noms des attributs, je garderai donc précieusement ce pdf !

    Bonne journée !

  6. #6
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Si ton problème est réglé, un p'tit clic sur serait pas mal...

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

Discussions similaires

  1. [Débutant] transformer int to string
    Par rherrad dans le forum Langage
    Réponses: 2
    Dernier message: 26/11/2005, 12h23
  2. [debutant]erreur int to string alors qu il n y a pas de int
    Par Battosaiii dans le forum SL & STL
    Réponses: 1
    Dernier message: 06/11/2005, 15h10
  3. problème de conversion int[x] --> string
    Par poussinphp dans le forum SL & STL
    Réponses: 2
    Dernier message: 17/08/2005, 14h45
  4. concaténer int et string
    Par liliprog dans le forum SL & STL
    Réponses: 5
    Dernier message: 13/08/2004, 16h30
  5. Int to String
    Par Tito dans le forum SQL
    Réponses: 2
    Dernier message: 21/10/2003, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo