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 entre deux dates


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Par défaut Liste de dates entre deux dates
    Bonjour à tous !

    Je dois écrire une fonction java, seul problème je ne connais pas ce langage, donc ce que j'ai essayé de bidouiller ne marche pas

    Je cherche a faire une fonction qui prend en paramètre 2 dates et qui me retourne une chaine qui contient une liste (sur une seule ligne, séparée par des des dates qui sont entre les 2 dates.

    Exemple :

    DateA : 24/09/2012
    DateB : 28/09/2012

    Résultat attendu : 24/09/2012;25/09/2012;26/09/2012;27/09/2012

    Alors.. j'ai fais ça, mais je pense que j'ai pas combien compris le fonctionnement du calendarGregorien là

    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
    public static String listeDesDates (Date DateDebut, Date DateFin)
    	{
     
     
    		GregorianCalendar cal = new GregorianCalendar();
    		cal.setTime(DateDebut);
    		String listeDates ="";
     
     
    		while (cal.before(DateFin))
    		{
    		listeDates = listeDates+cal.getTime()+";";
    		cal.add(GregorianCalendar.DATE,1);
     
     
     
    		}	
    		//supprimer le dernier caractère (;)
    		return listeDates;
    	}
    Problème : ma fonction retourne toujours une chaine vide
    Merci beaucoup par avance

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Bah ca fonctionne bien en fait ?!

    Mais j'imagine que ton problème se situe dans le format de la date qui t'es retourné sous la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mon Sep 24 18:20:50 CEST 2012;Tue Sep 25 18:20:50 CEST 2012;Wed Sep 26 18:20:50 CEST 2012;Thu Sep 27 18:20:50 CEST 2012;Fri Sep 28 18:20:50 CEST 2012;
    au lieu du

    24/09/2006;25/09/2006; etc

    Il faut donc formatter la date avec par exemple http://docs.oracle.com/javase/1.4.2/...ateFormat.html
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Bah ca fonctionne bien en fait ?!

    Mais j'imagine que ton problème se situe dans le format de la date qui t'es retourné sous la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mon Sep 24 18:20:50 CEST 2012;Tue Sep 25 18:20:50 CEST 2012;Wed Sep 26 18:20:50 CEST 2012;Thu Sep 27 18:20:50 CEST 2012;Fri Sep 28 18:20:50 CEST 2012;
    au lieu du

    24/09/2006;25/09/2006; etc

    Il faut donc formatter la date avec par exemple http://docs.oracle.com/javase/1.4.2/...ateFormat.html
    Ah oui pardon j'aurais du préciser : mon problème c'est que ma fonction retourne toujours une chaine vide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while (cal.before(DateFin))
    		{
    		listeDates = listeDates+cal.getTime()+";";
    		cal.add(GregorianCalendar.DATE,1);
    Ce que je veux faire ici : comparer ma date A à ma date B, si la A est plus petite que la B alors j'ajoute un jour à ma date A et je mets la valeur de la date A dans la variable listeDates, suivie d'un point virgule.

    while cal.before(DateFin) ça me donne bien un tant que dateDebut < DateFin ?

    Merci

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    hoho, bah c'est bizarre, ici ce petit code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    GregorianCalendar DateDebut = new GregorianCalendar();
    		GregorianCalendar DateFin = new GregorianCalendar();
    		DateFin.add(GregorianCalendar.DATE,5);
    		GregorianCalendar cal = new GregorianCalendar();
    		cal.setTime(DateDebut.getTime());
    		String listeDates ="";
    		while (cal.before(DateFin))
    		{
    			listeDates = listeDates+cal.getTime()+";";
    			cal.add(GregorianCalendar.DATE,1);
    		};
     		System.err.println(""+listeDates);
    Fonctionne bien, ca reponds même a ta dernière question en théorie

    Est-tu sure de passer des bonnes dates a ta fonction ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Par défaut
    Je pourrais vérifier mes dates en paramètre que demain, mais je crois bien qu'elles sont au format jj/mm/yyyy hh:mm et qu'il n'y a pas de soucis avec, je check ça demain matin

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    Je pense que tu dois confondre datefin et datedebut lorsque les paramètre sont rentrée.

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

Discussions similaires

  1. Liste des jours entre deux dates
    Par rvzip64 dans le forum Requêtes
    Réponses: 12
    Dernier message: 01/09/2015, 16h00
  2. fonction table pour récupérer la liste des jours entre deux dates
    Par elmoul7ak dans le forum Développement
    Réponses: 2
    Dernier message: 01/05/2010, 13h22
  3. [AC-2003] obternir la liste des dates entre deux dates
    Par ludman dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 30/03/2010, 21h08
  4. Liste des mois entre deux dates
    Par ginkas31 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/03/2008, 16h33
  5. Générer le listing des jours entre deux dates
    Par gsmdu62 dans le forum Langage
    Réponses: 8
    Dernier message: 01/05/2006, 11h08

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