Bonjour à tous.

J'ai un soucis avec un diagramme de Gantt.

Je n'arrive pas à faire en sorte que mes bandes de couleurs s'affiche par rapport à une date avec heure et minute comprise.

Voici mon code :

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
 
sql = "SELECT machine, idMachine, bfaCode, datedebtheo, datefintheo"
        + " FROM " + nomTableTEMPO
        + " GROUP BY machine, idMachine, bfaCode, datedebtheo, datefintheo"
        + " ORDER BY machine" ;
    res = ConnectionBean2.executeQuery(this.connex, sql) ;
    int machineMemo = -1 ;
    String codeBfMemo = "" ;
    Task machineTask = null ;
    while(res.next()){
 
      int idPst      = res.getInt("idMachine") ;
      String machine = res.getString("machine") ;
 
      if(idPst != machineMemo){
 
        sql = "SELECT MIN(datedebtheo), MAX(datefintheo)"
            + " FROM " + nomTableTEMPO
            + " WHERE idMachine = " + idPst ;
        res1 = ConnectionBean2.executeQuery(this.connex, sql) ;
        res1.next() ;
        String datedebtheoMin = res1.getString(1) ;
        String datefintheoMax = res1.getString(2) ;
        ConnectionBean2.close(res1) ;
 
        SimpleDateFormat dateDebSimple = new SimpleDateFormat("yyyy-MM-dd") ;
        java.util.Date dateDeb = dateDebSimple.parse(datedebtheoMin) ;
        Calendar cal = Calendar.getInstance() ;
        cal.setTime(dateDeb) ;
        int jourDeb  = cal.get(Calendar.DAY_OF_MONTH) ;
        int moisDeb  = cal.get(Calendar.MONTH) ;
        int anneeDeb = cal.get(Calendar.YEAR) ;
        int heureDeb = cal.get(Calendar.HOUR) ;        
        int minuteDeb = cal.get(Calendar.MINUTE) ;
        long milliDeb = cal.getTimeInMillis()  ;
 
        SimpleDateFormat dateFinSimple = new SimpleDateFormat("yyyy-MM-dd") ;
        java.util.Date dateFin = dateFinSimple.parse(datefintheoMax) ;
        cal = Calendar.getInstance() ;
        cal.setTime(dateFin) ;
        int jourFin  = cal.get(Calendar.DAY_OF_MONTH) ;
        int moisFin  = cal.get(Calendar.MONTH) ;
        int anneeFin = cal.get(Calendar.YEAR) ;
        int heureFin = cal.get(Calendar.HOUR) ;        
        int minuteFin = cal.get(Calendar.MINUTE) ;
        long milliFin = cal.getTimeInMillis()  ;
 
        /*
        machineTask = new Task(machine, new SimpleTimePeriod(new java.util.Date(anneeDeb, moisDeb, jourDeb, heureDeb, minuteDeb),
                                                             new java.util.Date(anneeFin, moisFin, jourFin, heureFin, minuteFin))) ;
        */
        machineTask = new Task(machine, new SimpleTimePeriod(milliDeb, milliFin)) ;
 
      }//if(idPst != machineMemo)
 
 
      //Un bf de la machine
      String bfaCode = res.getString("bfaCode") ;
 
      if(! codeBfMemo.equals(bfaCode)){
 
        sql = "SELECT MIN(datedebtheo), MAX(datefintheo)"
            + " FROM " + nomTableTEMPO
            + " WHERE bfaCode = " + Outils.formaterBDD(bfaCode, Types.VARCHAR) ;
        res1 = ConnectionBean2.executeQuery(this.connex, sql) ;
        res1.next() ;
        String datedebtheo = res1.getString(1) ;
        String datefintheo = res1.getString(2) ;              
        ConnectionBean2.close(res1) ;
 
        SimpleDateFormat dateDebBFSimple = new SimpleDateFormat("yyyy-MM-dd") ;
        java.util.Date dateDebBF = dateDebBFSimple.parse(datedebtheo) ;
        Calendar calBF = Calendar.getInstance() ;
        calBF.setTime(dateDebBF) ;
        int jourDebBF  = calBF.get(Calendar.DAY_OF_MONTH) ;
        int moisDebBF  = calBF.get(Calendar.MONTH) ;
        int anneeDebBF = calBF.get(Calendar.YEAR) ;
        int heureDebBF = calBF.get(Calendar.HOUR) ;        
        int minuteDebBF = calBF.get(Calendar.MINUTE) ;
        long milliDebBF = calBF.getTimeInMillis()  ;
 
        SimpleDateFormat dateFinBFSimple = new SimpleDateFormat("yyyy-MM-dd") ;
        java.util.Date dateFinBF = dateFinBFSimple.parse(datefintheo) ;
        calBF = Calendar.getInstance() ;
        calBF.setTime(dateFinBF) ;
        int jourFinBF  = calBF.get(Calendar.DAY_OF_MONTH) ;
        int moisFinBF  = calBF.get(Calendar.MONTH) ;
        int anneeFinBF = calBF.get(Calendar.YEAR) ;
        int heureFinBF = calBF.get(Calendar.HOUR) ;        
        int minuteFinBF = calBF.get(Calendar.MINUTE) ;
        long milliFinBF = calBF.getTimeInMillis()  ;
 
        TaskSeries s1 = new TaskSeries(bfaCode) ;
 
        /*
        Task O1 = new Task(bfaCode, new SimpleTimePeriod(new java.util.Date(anneeDebBF, moisDebBF, jourDebBF, heureDebBF, minuteDebBF),
                                                         new java.util.Date(anneeFinBF, moisFinBF, jourFinBF, heureFinBF, minuteFinBF))) ;
        */
        Task O1 = new Task(bfaCode, new SimpleTimePeriod(milliDebBF, milliFinBF)) ;
 
        O1.setPercentComplete(1.0) ;
        machineTask.addSubtask(O1) ;
        s1.add(machineTask) ;
        dataset.add(s1) ;
 
      }//if(! codeBfMemo.equals(bfaCode))
 
      //On place en mémoire le code du BF déjà traité et l'id de la machine déjà traité
      codeBfMemo  = bfaCode ;
      machineMemo = idPst ;
 
    }
    ConnectionBean2.close(res) ;
Je ne sais pas si c'est compréhensible , mais j'espère que quelqu'un pourra m'aider .

Merci d'avance.

PS : Meilleurs voeux