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 :

liste de dates en java


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Janvier 2009
    Messages : 42
    Par défaut liste de dates en java
    Bonjour à tous,

    Mon problème consiste à construire une table temps contenant les dates possibles entre deux dates entrées en paramètres.
    J'ai essayé avec
    Calendar java.util.Calendar.getInstance(TimeZone zone, Locale aLocale)
    mais ça ne donne qu'une seule date!!

    Je demande si quelqu'un sait une méthode en java qui prend en entrée deux dates précises et retourne la liste des dates comprises entre les deux.
    SVP un coup de main
    Cordialement
    WAFA

  2. #2
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Bonjour,

    Je peux te donner une méthode mais ça fait un peu bidouille...
    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
     
        List<Date> jourEntreDates(Date d1, Date d2) {
            List<Date> listDate = new ArrayList<Date>();
            Calendar c1 = Calendar.getInstance();
            Calendar c2 = Calendar.getInstance();
            c1.setTime(d1);
            c2.setTime(d2);
            listDate.add(c1.getTime());
            int i = 0;
            while((i = c2.compareTo(c1)) != 0){
                c1.add(Calendar.DATE, i);
                listDate.add(c1.getTime());
            }
            return listDate;
        }
    Elle a au moins le mérite de rendre le même résultat pour jourEntreDates(d1, d2) et jourEntreDates(d2, d1)

  3. #3
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Pour un utilisateur non averti, ce code n'est pas immédiatement limpide à comprendre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while((i = c2.compareTo(c1)) != 0){
         c1.add(Calendar.DATE, i);
         // ...
    }
    Mais surtout, cette méthode peut ne pas fonctionner : tu supposes que la méthode compareTo() renvoie 1, -1 ou 0, ce qui n'est pas vrai pour toutes les JVM.

    Les spécifications imposent à la méthode de renvoyer 0 en cas d'égalité, un nombre positif ou négatif sinon (mais qui n'a aucune obligation d'être 1 ou -1). Voir la Javadoc

    Note : ceci est plus généralement vrai pour toute les méthodes "compareTo()" d'une classe implémentant l'interface "Comparable". Pour t'en convaincre, tu peux tester une comparaison de caractères.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  4. #4
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Effectivement, c'est pour ça que j'ai parlé de bidouille.
    De plus, cette méthode, si elle est utilisée, doit obligatoirement être améliorée car je suis parti de l'idée qu'on avait des dates avec jour/mois/année de spécifié seulement. L'introduction d'heure et minute compromet largement son fonctionnement.
    C'est à dire qu'utiliser la méthode sur: 01/01/2009 00:00 et 04/01/2009 00:01 par exemple fera tourner la boucle indéfiniment.
    Le but était juste de donner une piste à notre ami

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Janvier 2009
    Messages : 42
    Par défaut date en java
    Bonjour à tous,
    Merci beaucoup pour votre aide c'était compliqué mais ça a aboutit enfin!!!
    Cordialement.
    WAFA

  6. #6
    Membre expérimenté Avatar de Roy Miro
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 273
    Par défaut
    Merci beaucoup pour votre aide c'était compliqué mais ça a aboutit enfin!!!
    Salut,
    je suis intéressé par ta solution, pourrais-tu la poster stp.
    Elle sera surement utile à plein de développeurs.

    Merci beacoup!

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

Discussions similaires

  1. activer/désactiver une liste déroulante + date calendrier
    Par toome dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 05/01/2006, 15h56
  2. activer/désactiver une liste déroulante + date calendrier
    Par toome dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 03/01/2006, 14h55
  3. Réponses: 7
    Dernier message: 06/12/2005, 19h32
  4. récupération liste de dates
    Par mjolymelot dans le forum Oracle
    Réponses: 1
    Dernier message: 24/11/2005, 11h31
  5. [Date]Date sous Java != celle sous Access
    Par Cyborg289 dans le forum JDBC
    Réponses: 4
    Dernier message: 27/07/2005, 23h11

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