OVH Cloud OVH Cloud

Faire une boucle "for" sur la date

6 réponses
Avatar
Osiris
Bonjour à tous,

Je suis débutant en Java et là je coince sur une petite chose pour vous.
J'ai un programme qui fait des courbes en fonction des requêtes d'une base de
données.

En gors,j'entre les paramètres par des combobox et il me sort un graphique.
Maintenant, je voudrais entrer une période donnée et que chaque fois qu'il
trouve la date correspondante en base, qu'il en fasse le courbe.
ça revient une peu à faire une boucle "for" non pas sur un entier, mais sur des
dates.
En fait, la requête en base sortira des dates dans la première colonne et
d'autres colonnes et je voudrais regrouper les données correspondant à une date
donnée pour en faire la courbe.
Quelqu'un sait un peu comment faire ?

Merci d'avance.

Osiris

6 réponses

Avatar
Segurane
Osiris wrote:
Bonjour à tous,

Je suis débutant en Java et là je coince sur une petite chose pour
vous.
J'ai un programme qui fait des courbes en fonction des requêtes d'une
base de données.

En gors,j'entre les paramètres par des combobox et il me sort un
graphique. Maintenant, je voudrais entrer une période donnée et que
chaque fois qu'il trouve la date correspondante en base, qu'il en
fasse le courbe.
ça revient une peu à faire une boucle "for" non pas sur un entier,
mais sur des dates.
En fait, la requête en base sortira des dates dans la première
colonne et d'autres colonnes et je voudrais regrouper les données
correspondant à une date donnée pour en faire la courbe.
Quelqu'un sait un peu comment faire ?


Tu sembles vouloir effectuer une iteration sur un ensemble de date. Le
framework Collection est ton ami et parmi celui-ci la classe la plus connue,
Vector. Regardes donc la javadoc de java.util.Vector et java.util.Iterator.
Un petit exemple :

import java.util.Vector;
import java.util.Iterator;
...
// ajout
Vector listeDate = new Vector();
listeDate.add(uneDate);
listeDate.add(uneAutreDate);
...
// Pour iterer sur l'ensemble de dates, il faut utiliser un Iterator
Iterator it = listeDate.iterator();
Date date;
while(it.hasNext()){
date = (Date)it.next(); // tu recuperes la Date;
doSomething(date);
}

--
Nico.

Avatar
Lionel
Segurane wrote:
Tu sembles vouloir effectuer une iteration sur un ensemble de date.


je n'ai pas compris ca. Il n'y a qu'une période, donc 2 dates maximum...

Le framework Collection est ton ami et parmi celui-ci la classe la plus
connue, Vector.


J'aurais plutot conseillé ArrayList ou HashSet...

Mais je pense plutot qu'il s'agit de problème de requete SQL, et pas un pb
java.
Il faudrait plus de détails.

Avatar
Osiris
Segurane wrote:
Tu sembles vouloir effectuer une iteration sur un ensemble de date. Le
framework Collection est ton ami et parmi celui-ci la classe la plus connue,
Vector. Regardes donc la javadoc de java.util.Vector et java.util.Iterator.
Un petit exemple :

import java.util.Vector;
import java.util.Iterator;
...
// ajout
Vector listeDate = new Vector();
listeDate.add(uneDate);
listeDate.add(uneAutreDate);
...
// Pour iterer sur l'ensemble de dates, il faut utiliser un Iterator
Iterator it = listeDate.iterator();
Date date;
while(it.hasNext()){
date = (Date)it.next(); // tu recuperes la Date;
doSomething(date);
}




merci beaucoup de ton aide, une autre "petite question".
comment remplir listeDate si j'ai 300 dates avec d'éventuelles répétitions et
que je ne veux que des dates différentes?En gros, je veux que chaque date soit
répertorié une seule fois.

Avatar
Lionel
Osiris wrote:

merci beaucoup de ton aide, une autre "petite question".
comment remplir listeDate si j'ai 300 dates avec d'éventuelles
répétitions et que je ne veux que des dates différentes?En gros, je
veux que chaque date soit répertorié une seule fois.


lis la doc de HashSet qui est une collection qui ne contient pas de doublon

Avatar
Osiris
Lionel wrote:
J'aurais plutot conseillé ArrayList ou HashSet...

Mais je pense plutot qu'il s'agit de problème de requete SQL, et pas un pb
java.
Il faudrait plus de détails.



Bonjour,
alors, je vous donne plus de détails.
en fait, ma requete SQl me génère une tableau comme suit

date||donnée1||donnée 2

je dois ensuite regrouper donnee1 et donnée2 correspondants à une même date pour
en faire une courbe.
Je suis obligé de sortir la "date" car en entrée, je reçois une période (par
exemple 15 sept 2002 -->20 dec 2002 ), qui a donc plusieurs dates.
ensuite, les courbes doivent être faites par date..
Je veux donc pouvoir dire à mon programme que je veux regrouper par date les
variables donnee1 et donnee2.

En espérant avoir été plus clair

Merci d'avance

Avatar
jerome moliere
Osiris wrote:

Lionel wrote:

J'aurais plutot conseillé ArrayList ou HashSet...

Mais je pense plutot qu'il s'agit de problème de requete SQL, et pas
un pb
java.
Il faudrait plus de détails.




Bonjour,
alors, je vous donne plus de détails.
en fait, ma requete SQl me génère une tableau comme suit

date||donnée1||donnée 2

je dois ensuite regrouper donnee1 et donnée2 correspondants à une même
date pour en faire une courbe.
Je suis obligé de sortir la "date" car en entrée, je reçois une période
(par exemple 15 sept 2002 -->20 dec 2002 ), qui a donc plusieurs dates.
ensuite, les courbes doivent être faites par date..
Je veux donc pouvoir dire à mon programme que je veux regrouper par date
les variables donnee1 et donnee2.
ce que tu cherches c'est clairement une table de hachage...

donc Hashtable (bah ) ou mieux une Map (HashMap, TreeMap)...
les contraintes de doublons, l'utilisation typique de tes données (ici
c'est plutot de la lecture je pense) doit t'indiquer le type
d'implémentation à choisir (javadoc est ton ami)

jerome