-
Problème de Date
Bonjour à tous,
Je suis confronté à une problématique avec des dates et je ne vois pas comment m'en sortir de manière simple et propre. Voici le problème:
J'ai des Tranches horaire avec une date de début et une date de fin (Calendar)
En parallèle j'ai des rendez-vous avec également une date de début et une date de fin.
Je veux savoir si pour une tranche horaire il existe une période non couverte par des rendez-vous.
Comment faire pour réaliser ces opérations sans se retrouver avec une usine :(
Si quelqu'un à déjà été confronté à ce soucis, je suis preneur d'une piste :D
Merci par avance
-
Hello,
Regarde la librairie JodaTime qui est selon moi LA référence en terme de gestion de dates et autre.
Entre Period, Duration, Interval et autres objets tu devrait rapidement trouver ton bonheur
-
Interval simplifie en effet beaucoup les choses avec ses méthodes gap() et overlap().
Mais il reste à comparer la tranche horaire avec les rendez-vous déjà présent pour voir s'il reste du libre.
Concrètement ça consiste à retrancher les rendez-vous de la plage horaire, qui donc n'est plus contigüe et doit donc être représentée sous forme de collection d'intervalles.
C'est pas très dur, mais pas direct non plus.
-
Je vais suggérer un truc tout con. En supposant (c'est pas sur) que les rendez vous sont déjà associé à une tranche horaire, et que tu cherche à savoir si il y a des trous dans cette tranche là.
Tu trie tes rendez-vous par date de début.
En toute logique, si il n'y a pas de trou, la date de fin du rendez-vous 1 = date de début du rendez-vous 2. Quand ça matche pas, t'as un trou de rendevous1.fin à rendezvous2.debut
Bref, un simple tri et un parcours dans l'ordre devrait suffire.
Si il n'y a pas association aux tranches horaires pré-établies, faire le tri global et, chaque fois que t'identifie un trou, simplement tester aussi si il rendre dans un tranche horaire.