Bonjour à tous,*
Je commence à être à bout de souffle, du coup je me permets de poser un cierge !
J’essaye de réaliser un planning de locations JEE/Tomcat/Oracle. Je suis étudiant et je découvre la gestion des dates en Java, aïe ça fait mal !
Donc, je récupère dans un arrayList les informations importantes pour la gestion du planning. Les dates sont au format « String »
Au niveau de la JSP j’affiche les infos sous forme de tableau avec les éléments qui vont bien.
Un Datepicker est présent pour gérer la date à afficher. Jusque-là ça fonctionne relativement bien.
Maintenant j’essaye de gérer les dates, et là, c’est la prise de tête depuis quelques jours.
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 Date dateRecherche = null; Locations loc = null; SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); String maintenant = (String)session.getAttribute("maDate"); Date dateDuJour = formatter.parse(maintenant); for (int iLigne = 0; iLigne < listeLocations.size(); iLigne++) { //if (dateDuJour >= loc.getConvertDateDeb() && dateDuJour <= loc.getConvertDateFin()){ //if (dateDuJour.compareTo(loc.getConvertDateFin()) == 0) //for (dateDuJou.after(loc.getConvertDateDeb()); ) //{ //Date dateDebutResa = loc.getConvertDateDeb(); //do //{ System.out.println("dateDuJour : "+dateDuJour); System.out.println("date maintenant : "+maintenant); %> <tr> <% loc = (Locations)listeLocations.get(iLigne); int inter = (loc.getCalculHFin() - loc.getCalculHDeb()); int numColEnCours = 0; out.println("<td>" + loc.getNomSalle() +"</td>"); int NbrCol = 34 - inter; for (int col = 0; col <= NbrCol; col++) { if (col == loc.getCalculHDeb()) { numColEnCours = inter; System.out.println("dateconvertDeb jsp : "+loc.getConvertDateDeb()); System.out.println("dateconvertefin jsp : "+loc.getConvertDateFin()); out.println("<td title=\""+loc.getNomClient()+"\" bgcolor=\"#CCCCFF\" colspan=\""+ inter+ "\"><a class=\"lienTd\" href=\"planningLocations.jsp?id=" + loc.getIdAffaireRessource() + "\">"+ loc.getNumAffaire() + " - " + loc.getNomAffaire()+ "</a></td>"); iLigne = iLigne + numColEnCours; } else { out.println("<td> </td>"); }// fin du else }//fin du for "col" //}while (dateDuJour.after(dateDebutResa));//fin du if date }//fin du for "iLigne }//fin du eles si location is.Empty %> </tr> </table> </div>
Au niveau de mon planning je cherche à afficher les locations qui correspondent à la date consultée ainsi que les locations en cours.
En gros :
Si la date de début de location commence aujourd’hui (date renvoyer par le datePicker) = afficher
Si la date de fin de la location fini aujourd’hui (date renvoyer par le datePicker) = afficher
Si aujourd’hui est supérieur à la date de début et inférieur à la date de fin = afficher
Oui ça représente que trois lignes mais c’est une prise de tête monumentale….
Du coup, vue que les dates en Bdd sont typées string, j’ai créé des méthodes pour les convertir en SimpleDateFormat. Apparemment ça fonction, j’ai fait des System.out.println :
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
21
22
23
24
25
26
27
28
29 public Date getConvertDateDeb(){ try { dateDebConvert = (Date)formatter.parse(dateDebut); } catch (ParseException e) { e.printStackTrace(); } System.out.println("date deb convert : " + dateDebConvert); return dateDebConvert; } public void setConvertDateDeb(Date dateDebConvert){ this.dateDebConvert = dateDebConvert; } public Date getConvertDateFin(){ try { dateFinConvert = (Date)formatter.parse(dateFin); } catch (ParseException e) { e.printStackTrace(); } System.out.println("date fin convert : "+dateFinConvert); return dateFinConvert; } public void setConvertDateFin(Date dateFinConvert){ this.dateFinConvert = dateFinConvert; }
Au niveau de la Jsp j’ai tout essayé !!!Dixit la console Eclipse :
date deb convert : Wed Jan 28 00:00:00 CET 2015
dateconvertDeb jsp : Wed Jan 28 00:00:00 CET 2015
date fin convert : Wed Jan 28 00:00:00 CET 2015
dateconvertefin jsp : Wed Jan 28 00:00:00 CET 2015
dateDuJour : Thu Apr 16 00:00:00 CEST 2015
date deb convert : Fri Feb 20 00:00:00 CET 2015
dateconvertDeb jsp : Fri Feb 20 00:00:00 CET 2015
date fin convert : Fri Feb 20 00:00:00 CET 2015
dateconvertefin jsp : Fri Feb 20 00:00:00 CET 2015
dateDuJour : Thu Apr 16 00:00:00 CEST 2015
date deb convert : Mon Jan 26 00:00:00 CET 2015
dateconvertDeb jsp : Mon Jan 26 00:00:00 CET 2015
date fin convert : Mon Jan 26 00:00:00 CET 2015
Des boucles (while, do While) , des conditions (if) et même des comparaison (before, after, comparTo)…. Et ben chez moi, aucune méthode de filtre ne fonctionne.
Pourtant pour lui ça ne pose aucun souci :
http://www.mkyong.com/java/how-to-co...dates-in-java/
Bref je sais plus quoi faire, j'ai l'impression de tourner sur une erreur que je ne vois pas.
Si vous avez une idée, une question, une piste, c'est avec grand plaisir...
Merci beaucoup par avance
Partager