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

Java Discussion :

Probleme Calendar


Sujet :

Java

  1. #21
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Ton objet il est de quelle classe ??

    computeTime() existe pour Calendar et GregorianCalendar

  2. #22
    Membre émérite Avatar de warwink
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 650
    Par défaut
    Ta méthode, elle est "protected".

  3. #23
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Si tu as un null c'est qu'il y a une erreur dans ton code... cela ne sert à rien de rechercher des "méthodes magiques" dans Calendar...

    Vérifie bien ton code, ou poste le code indiqué dans ton stacktrace...

    a++

  4. #24
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Je pense que ton set ne met pas à jour ton Calendar comme il faut.

    En effet les méthodes dont je parle sont protected, donc tu ne peux pas les déclencher à la main, peut être que tu peux t'en sortir comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private Calendar lastCheck;
    lastCheck = Calendar.getInstance();
    lastCheck.setTime( new Date(2000,1,1) );

  5. #25
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Citation Envoyé par adiGuba
    Si tu as un null c'est qu'il y a une erreur dans ton code... cela ne sert à rien de rechercher des "méthodes magiques" dans Calendar...

    Vérifie bien ton code, ou poste le code indiqué dans ton stacktrace...

    a++
    Calendar me rappelle de mauvais souvenir, je me souviens par exemple que dans l'implémentation d'IBM, les champs n'étaient pas mis à jour si tu ne faisais pas un toString() !

    Il y a un problème à mon avis au niveau du recalcul de la vrai date... enfin peut-être que je me trompe, mais le problème que je cite un peu plus haut est réel, ça faisait planter une appli quand on changeait de fuseau horaire !

  6. #26
    Membre émérite Avatar de warwink
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 650
    Par défaut
    Attention les yeux ca pique :p


    at NetworkEagleUI.ui.AppletUI.run(AppletUI.java:116)
    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
             while (true) {
                    try {
                        System.out.println("Refresh");
                        new AlertParser("E:\\Day5.log", company, lastCheck);
                        lastCheck = Calendar.getInstance();
     
                    } catch (AlertException e1) {
                        //TODO
                        e1.printStackTrace();
                    }
                try {
                    Thread.sleep(10000);
                } catch(InterruptedException e){
                    //TODO
                    e.printStackTrace();
                }
            }
    Aprés :
    at NetworkEagleUI.parser.alert.AlertParser.<init>(AlertParser.java:32)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private Calendar lastCheck;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public AlertParser(String fileName, Company company, Calendar lastCheck) throws AlertException{
            try{
                this.company = company;
                this.lastCheck = lastCheck;
                this.reader = new BufferedReader(new FileReader(fileName));
                this.handler = new AlertHandler();
                this.lineNumber = 0;
                this.parse();
            }catch(IOException e){
                //TODO
                e.printStackTrace();
            }
        }
    c'est ici que lastCheck devient null donc ca sert a rien que je mette la suite. Je regarde la variable dans le constructeur (et non pas méthode mais bon je pense passe que ca change grand chose) AlertParser, elle est null

  7. #27
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                        new AlertParser("E:\\Day5.log", company, lastCheck);
                        lastCheck = Calendar.getInstance();
    Tu instancies ton Calendar après l'appel au constructeur, normal ?

  8. #28
    Membre émérite Avatar de warwink
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 650
    Par défaut
    Ouai pour avoir l'heure de ma derniere MAJ.

    C'est vrai que sur le coup j'ai fais ca comme un porc car normalement j'aurais du faire un truc du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Calendar tmpCheck = (Calendar)lastCheck.clone();
    lastCheck = Calendar.getInstance();
    new AlertParser("E:\\Day5.log", company, tmpCheck);
    Comme ca je sauvegarde l'heure puis je fais les MAJ par rapport à l'ancienne. Puis 10s plus tard idem ....

  9. #29
    Membre émérite Avatar de warwink
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 650
    Par défaut
    De toute facon,le fait deja que ca marche certaines fois et pas d'autres je sentais le problème à la con. Mais alors là, je viens de faire la modif du message d'avant et les résultats sont que :

    En exectution normale, ca fait toujours la même chose. Au début ca marche pas puis aprés ca marche.

    En mode pas à pas: ca marche tout le temps

    Alors je sais pas si c'est du à mon PC ou à Eclipse, mais ca c'est vraiment bizarre.

  10. #30
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Ben oui, mais si tu le mets à jour après ton premier appel à ton constructeur, au premier passage, il sera = null non ?

  11. #31
    Membre émérite Avatar de warwink
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 650
    Par défaut
    C'est vrai que je ne l'ai pas ré-écrit, mais dans mon tout premier post j'avais que je fesait d'abord une initialisation de lastCheck :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            lastCheck = Calendar.getInstance();
            lastCheck.set(2000,1,1);

  12. #32
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    mais tu le mets où ce code ?
    directement en dessous de la déclaration des attributs ?

    Il faut plutot le mettre dans le constructeur je pense, si ce n'est pas le cas.
    Sinon il y a des chances que ce ne soit pas executé, peut-être que ton erreur est là.

    Quand tu appelles ton constructeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public AlertParser(String fileName, Company company, Calendar lastCheck) throws AlertException{
            try{
                this.company = company;
                this.lastCheck = lastCheck;
                this.reader = new BufferedReader(new FileReader(fileName));
                this.handler = new AlertHandler();
                this.lineNumber = 0;
                this.parse();
            }catch(IOException e){
                //TODO
                e.printStackTrace();
            }
        }
    Tu lui fournis bien une valeur pour lastCheck ?

  13. #33
    Membre émérite Avatar de warwink
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 650
    Par défaut
    J'initialise dans la méthode init() car c'est un applet.

    Sinon je peux plus vraiment te dire que je lui fourni vraiment une valeur car en mode pas a pas ca marche tout le temps. Et bon d'après mon code, ca serait oui la réponse.

    Moi j'ai vraiment l'impression que c'est un problème d'execution mais bon dans la logique c'est pas possible.

  14. #34
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Essaie de donner la main au constructeur pour initialiser lastCheck, et qu'il fasse lui même la mise à jour via le Calendar.getInstance(). Ainsi tu enlèves le paramètre de la liste dans ton constructeur.

    Peut-être que ça marchera mieux... Bien que comme tu dis je ne vois pas pourquoi

Discussions similaires

  1. Probleme Calendar Binding
    Par condor_ dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 17/06/2013, 08h39
  2. probleme avec un objet Calendar
    Par ver_for dans le forum IHM
    Réponses: 0
    Dernier message: 06/06/2008, 10h31
  3. Probleme numero semaine calendar
    Par MortDansLAme dans le forum Collection et Stream
    Réponses: 12
    Dernier message: 28/04/2008, 15h10
  4. probleme avec Calendar
    Par jerome86600 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 22/05/2007, 16h03
  5. probleme avec la classe calendar
    Par fatmax dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 04/10/2005, 17h04

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