Voici mon problème.Dans une base de donnée j’ai des périodes : un champ pour le jour (type date) , un champ pour l’heure du début (type heure) et un champ pour l’heure de fin (type heure) d’une période.
Je voudrai savoir si certaines période se chevauche.
Par exemple, jai une période dans ma base de 10h30-12h30. Avant d’ajouter une autre période dans ma base (par exemple 9h à 13h) je voudrai tester si la période que j’ajoute dans ma base chevauche la première.
Je ne voie pas comment faire. On doit pouvoir tester les plages horaires dans tous les cas (dans le cas présent l’heure de debut et de fin de la plage saisi ne sont pas comprise dans les borne de la première)
J’espère avoir été assez clair.merci d’avance de vos réponses. :pt1cable:
Si l’heure de fin de la nouvelle période est inférieur à l’heure de fin d’une période déjà enregistrée, tester si la fin de la nouvelle période est supérieur à la date de début de cette période actuelle.
Tu fais la meme pour l’heure de début de cette nouvelle période.
heu dsl mais je ne te suit pas là !!!!
si dans ma base jai pdebu1 et pfin1 et que la période que je saisi est pdebut2 et pfin2 : ça donne quoi concrètement le test ??
atten je doit avoir une problème, c’est pas possible, avec ton explication ça marche pas, aucune condition est rempli, tu l’écrit toi mème “f2 ne l’ai pas à f1”.
ça maffiche donc pas de chevauchement, alors quil y en a un !!!
dans mon exemple 9 et 13 ne sont jamais compris entre 10 et 11. Ou alors j’ai pas compris votre histoire…
Bon faut prendre le pb à l’envers c’est plus simple de tester s’il n’y a pas chevauchement:
il y a 6 cas de figure
d1->f1->d2->f2 NON chevauchement
d1->d2->f1->f2 OUI
d1->d2->f2->f1 OUI
d2->f2->d1->f1 NON
d2->d1->f2->f1 OUI
d2->d1->f1->f2 OUI
donc en gros
Si f1<d2 OU Si f2<d1 alors il n’y a pas chevauchement