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

Collection et Stream Java Discussion :

[Calendar] Problème de comparaison de 2 dates


Sujet :

Collection et Stream Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Par défaut [Calendar] Problème de comparaison de 2 dates
    Bonjour à tous et bonnes fêtes (au passage),

    Voilà j'ai créé des dates en utilisant la classe java.util.Calendar en les "construisant" de deux sortes (qui sont équivalentes) qui sont les suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Calendar uneDate = Calendar.getInstance(un Locale);
     
    // 1ère façon 
    uneDate.set(année sélectionnée, mois sélectionné, 1);
    uneDate.set(Calendar.HOUR_OF_DAY, un chiffre);
    uneDate.set(Calendar.MINUTE, un chiffre);
    uneDate.set(Calendar.SECOND, un chiffre);
     
    // 2ième façon
    uneDate.set(une année, un mois, une heure, des minutes, 0 seconde);
    C'est deux façon son bien équivalentes ça c'est sur.

    Et en fait ce que je veux faire au final c'est les comparer donc j'ai essayé la méthode de Calendar (faite pour ça) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (ma1ereDate.compareTo(ma2emeDate) == 0){...}
    Et bien ça ne marche pas et pourtant j'ai affiché leur valeur et c'est bien les mêmes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ma1ereDate.getTime() // Thu Nov 30 14:00:00 CET 2006
     
    ma2emeDate.getTime() // Thu Nov 30 14:00:00 CET 2006
    Donc pour le moment j'ai fait ma méthode compareTo pour l'égalité qui marche mais je souhaiterais plutôt utiliser tant qu'à faire celle de java.util.Calendar.

    Si vous avez des idées sur où peut venir le problème n'hésitez pas.

    Merci d'avance pour vos réponses

  2. #2
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Et si essayais

    Calendar#before(Object);
    et
    Calendar#afterObject);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Par défaut
    En faite ça marche lorsque je teste si une date est supérieure ou inférieure à une autre avec compareTo mais pas pour l'égalité.

  4. #4
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Tu peux faire voir ton code stp.

  5. #5
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Pour moi ça fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    long current = System.currentTimeMillis();
    Date date1 = new Date(current);
    Date date2 = new Date(current);
    Calendar cal1 = Calendar.getInstance();
    Calendar cal2 = Calendar.getInstance();
    cal1.setTime(date1);
    cal2.setTime(date2);
     
    System.out.println("equals : " + (cal1.compareTo(cal2) == 0));
    Ca donne true.

    Et si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    long current1 = System.currentTimeMillis();
    long current2 = current1 + 1000l;
     
    Date date1 = new Date(current1);
    Calendar cal1 = Calendar.getInstance();
    Date date2 = new Date(current2);
    Calendar cal2 = Calendar.getInstance();
    cal1.setTime(date1);
    cal2.setTime(date2);
     
    System.out.println("equals : " + (cal1.compareTo(cal2) == 0));
    J'ai false

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Par défaut
    J'ai trouvé le problème .
    Comme mais deux dates sont créées dans deux classes différentes et que j'avais pas vu que le Calendar avait aussi des millisecondes alors c'est sur que les dates étaient toujours différentes car je n'affectai pas de millisecondes dans mes 2 façons.
    Maintenant ça marche nickel avec compareTo.

    Merci thibaut de ta participation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de comparaison de deux dates dans une requête
    Par amira88 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/12/2010, 09h02
  2. Problème sur comparaison de date
    Par Nixar dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/12/2007, 09h19
  3. Problème de comparaison de dates
    Par griese dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/07/2006, 16h35
  4. [Calendar]Problème de calcul de date
    Par valerie90 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 08/12/2004, 12h13
  5. Problème de comparaison de dates
    Par MiJack dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/03/2004, 21h43

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