Bonjour,

j'ai une liste de taches.
Une tache est constituée de : un identifiant, une date de depart, et une durée.

Je voudrais savoir si dans ma liste de taches, est ce que à un moment il y a X taches qui se chevauche.

Soit ci dessous ma liste de taches ( "-" est l'unité de durée)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 
t->
 
<ol class="decimal"><li style="">---</li><li style="">--</li><li style="">-</li><li style=""> ---</li><li style=""> --</li><li style="">  ---</li><li style="">  -</li><li style="">   --</li><li style="">   -</li></ol>
Ici, je voudrais avoir la liste de tache pour 5 chevauchements,
soit les taches 1 4 5 6 7.

la premiere solution que j'ai trouvé etait :

pour chaque tache (noté ref), on liste toutes les taches pour lesquelles la date de debut est entre ref.datedebut et ref.datefin (obtenu par ref.datedebut+ref.duree)

hors cela ne fonctionne pas puisqu'on peut avoir plusieurs "domaines" d'intersection
par exemple, avec ce raisonnement pour la tache 1, on aurait 7 taches qui se chevauchent (de 1 à 7), hors dans ce cas précis, les taches 3 et 4 ne se chevauchent pas alors qu'elle font parti du meme "domaine"


j'ai trituré le probleme dans pas mal de sens, mais je trouve toujours un cas qui fausse mon raisonnement.

Si quelqu'un a une idée, et qu'il veut bien la soumettre,
je le remerie d'avance

Cordialement,

Azzhunter