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 :

comparer des dates entre elles


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Par défaut comparer des dates entre elles
    bonjour,

    j'enregistre dans un fichier des événements mais pas toujours dans leur ordre d'arrivée pour des raisons précises.

    chaque ligne de mon fichier correspond à une date;

    je sais comment récupérer la date sous forme de String et la convertir en Date (vu dans la faq);

    par contre, je ne sais pas comment comparer deux dates entre elles?

    merci d'avance !

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Y a peut-être plus simple et plus propre mais tu peux convertir les dates en timestamp (récupère un Calendar puis fais un calendar.setTime(myDate) et calendar.getTimeInMillis()) et les comparer.

  3. #3
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Ou tout simplement Date implémente Comparable<Date> donc tu peux utiliser compareTo

    Sinon :
    récupère un Calendar puis fais un calendar.setTime(myDate) et calendar.getTimeInMillis()
    A quoi bon passer par un Calendar ? getTime() directement sur la date...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Par défaut
    mon pb justement est de comparer... suffit il de faire une simple comparaison classique comme date1<date2 ?

    le plus simple serait peut être de récupérer chaque ligne dans une collection
    du style Collection<Ligne> avec Ligne une classe que je créerai qui contiendrait une date et d'autres informations...
    dans ce cas y'a t'il moyen de récupérer les éléments de la collection dans l'ordre croissant des dates (plus rapidement qu'en comparant une à une chaque date)?

    merci pour vos réponses

  5. #5
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Comme je te l'ai écrit plus haut, il suffit d'utiliser compareTo...

    Si tu veux utiliser une Collection de ta propre classe et la trier :
    - soit ta classe implémente Comparable<TaClasse> (typiquement dans ton compareTo tu renvoies le compareTo des dates contenues dans ta classe) et tu peux utiliser Collections.sort(taListe)
    - soit tu fais Collections.sort(taListe,tonComparator), où tonComparator est un Comparator<TaClasse>

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Par défaut
    Citation Envoyé par remika
    Comme je te l'ai écrit plus haut, il suffit d'utiliser compareTo...

    Si tu veux utiliser une Collection de ta propre classe et la trier :
    - soit ta classe implémente Comparable<TaClasse> (typiquement dans ton compareTo tu renvoies le compareTo des dates contenues dans ta classe) et tu peux utiliser Collections.sort(taListe)
    - soit tu fais Collections.sort(taListe,tonComparator), où tonComparator est un Comparator<TaClasse>
    ok ça se précise

    maListe serait de type List<Ligne>
    maClasse serait List<Ligne>

    sachant que Ligne est une classe dont les objects auront pour informations une date de type Date et d'autres données de type String ...

    merci de ton aide!

  7. #7
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Citation Envoyé par remika
    A quoi bon passer par un Calendar ? getTime() directement sur la date...
    Parce que trop simple !!! J'avais pas vu

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

Discussions similaires

  1. [Lazarus] MD5 : comment comparer des valeurs entre elles ?
    Par MedGIR dans le forum Lazarus
    Réponses: 1
    Dernier message: 26/08/2009, 21h30
  2. Réponses: 3
    Dernier message: 14/06/2009, 00h14
  3. Réponses: 4
    Dernier message: 31/10/2005, 12h06
  4. Comparer des Dates (Access, jdbc)
    Par babylone7 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/07/2005, 10h01
  5. [Date] Comparer des dates au format mySQL "date
    Par Marc_P dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 25/10/2004, 15h15

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