-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJour.java
160 lines (145 loc) · 6.21 KB
/
Jour.java
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
package My_Desktop_planner;
import java.util.ArrayList;
import java.util.Collections;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.Scanner;
public class Jour {
private ArrayList<Creneau> mes_creneau;
private ArrayList<Tache> mes_taches;
private int nb_tache_prevue;
private int nb_tache_min;
public int getNb_tache_min() {
return nb_tache_min;
}
public void setNb_tache_min(int nb_tache_min) {
this.nb_tache_min = nb_tache_min;
}
private int nb_tache_realiser;
public int getNb_tache_realiser() {
return nb_tache_realiser;
}
public void setNb_tache_realiser(int nb_tache_realiser) {
this.nb_tache_realiser = nb_tache_realiser;
}
private float redement;
public float getRedement() {
return redement;
}
public void setRedement(float redement) {
this.redement = redement;
}
//ArrayList<Tache> mes_tache = new ArrayList<Tache>();
public void calculer_rendement()
{
this.redement=nb_tache_realiser/nb_tache_prevue;
}
public void supp_tache(Tache tache)
{
mes_creneau.remove(tache);
}
public ArrayList<Tache> planifier_jour_auto()//cette methode retourne les taches non planifoe
{
Creneau[] cr = new Creneau[2];
ArrayList<Tache> tache_uns = new ArrayList<Tache>();
for (int i = 0; i < this.mes_taches.size(); i++) {
Creneau creneau = this.mes_creneau.get(i);
Tache tache = this.mes_taches.get(i);
Duration duree1 = Duration.parse(creneau.Calculer_Duree());
/* if (duree1.compareTo(this.mes_taches.get(i).getDuree())>0)
{
cr= this.mes_creneau.get(i).decomposerCreneau(tache,creneau);//decomposition du creneau
Duration duree2 = Duration.parse(cr[1].Calculer_Duree());
if (duree2.compareTo(this.mes_creneau.get(i).getDureeMin())>0)
{
this.mes_creneau.add(i,cr[0]);
this.mes_creneau.add(i+1,cr[1]);
creneau = this.mes_creneau.get(i);
creneau.Planifier(tache);
}
else
{
creneau.Planifier(tache);//le creneau sera allouè entierement à la tache
}
this.mes_creneau.get(i).setEtat(true);//set le creneau comme bloque
}*/
for (Creneau cre : this.mes_creneau) {
Duration dur = Duration.parse(cre.Calculer_Duree());
Duration dur1 = this.mes_taches.get(i).getDuree();
int tr = 0;
if ((dur.compareTo(dur1) >= 0) && cre.getlibre() == true) {
tr = 1;
cr = this.mes_creneau.get(i).decomposerCreneau(tache, creneau);//decomposition du creneau
Duration duree2 = Duration.parse(cr[1].Calculer_Duree());
if (duree2.compareTo(this.mes_creneau.get(i).getDureeMin()) > 0) {
this.mes_creneau.add(i, cr[0]);
this.mes_creneau.add(i + 1, cr[1]);
creneau = this.mes_creneau.get(i);
creneau.Planifier(tache);
this.mes_creneau.get(i).setlibre(false);//set le creneau comme occupe
} else {
creneau.Planifier(tache);//le creneau sera allouè entierement à la tache
this.mes_creneau.get(i).setlibre(false);//set le creneau comme bloque
}
if (tr == 0)//cas ou on trouve pas de crneau pour mettre la tache
{
if (tache.getDecomposable() == true)// si la tache est decomposable on opte à sa decomposition
{
TacheDecomposable tachedec=(TacheDecomposable) tache;
//on decompose la tache
} else {
tache_uns.add(tache);
tache.setEtat("nonprogramme");
}
}
}
}
}
return tache_uns;
}
public void classer_taches( )
{
// Tri des éléments en fonction de leur priorité
Collections.sort(this.mes_taches, (e1, e2) -> {
if (e1.getPriorite().equals(e2.getPriorite())) {
return 0;
} else if (e1.getPriorite().equals("High")) {
return -1;
} else if (e2.getPriorite().equals("High")) {
return 1;
} else if (e1.getPriorite().equals("Medium")) {
return -1;
} else if (e2.getPriorite().equals("Medium")) {
return 1;
} else if (e1.getPriorite().equals("Low")) {
return -1;
} else {
return 1;
}
});
}
public void planifier_jour_mannu() {
//affichages des creneau
for (int i = 0; i < this.mes_taches.size(); i++) {
System.out.println("la tache " + i + " est :" + this.mes_taches.get(i));
System.out.println("Choisisez le numero de creneau dont vous voulez associe la tache");
Scanner scanner = new Scanner(System.in);
Creneau[] cr = new Creneau[2];
int num_creneau = scanner.nextInt();
Creneau creneau = this.mes_creneau.get(i);
Tache tache = this.mes_taches.get(i);
Duration duree1 = Duration.parse(creneau.Calculer_Duree());
if (duree1.compareTo(this.mes_creneau.get(i).getDureeMin()) > 0) {
this.mes_creneau.get(i).decomposerCreneau(tache, creneau);//decomposition du creneau
Duration duree2 = Duration.parse(cr[1].Calculer_Duree());
if (duree2.compareTo(this.mes_creneau.get(i).getDureeMin()) > 0) {
this.mes_creneau.add(i, cr[0]);
this.mes_creneau.add(i + 1, cr[1]);
creneau = this.mes_creneau.get(i);
creneau.Planifier(tache);
} else {
creneau.Planifier(tache);//le creneau sera allouè entierement à la tache
}
}
}
}}