July 17, 2022 4:54 PM (GMT+2) Bonjour tout le monde Je cherche une solution pour afficher dans un tableau les tâches et événements pour les 5 prochains jours. Avez vous une idée ? J'aimerais l'avoir sous forme Kanban avec la 1ère colonne les retards, aujourd'hui, J+1, j+2
<aside> <img src="https://prod-files-secure.s3.us-west-2.amazonaws.com/9210293a-6b0f-4638-8e8d-3c40b40ed42b/591a2f08-9da5-408a-8276-8ac64a5b6171/Invisible.png" alt="https://prod-files-secure.s3.us-west-2.amazonaws.com/9210293a-6b0f-4638-8e8d-3c40b40ed42b/591a2f08-9da5-408a-8276-8ac64a5b6171/Invisible.png" width="40px" /> Réponse rapide :
Pour afficher les événements des 5 prochains jours en vue Kaban, il faut pouvoir les grouper selon la différence de jours qui existe entre l’événement et maintenant. Cette différence servira de paramètre pour la vue Kaban et doit être stockée dans une propriété.
La fonction la plus simple permettant de connaître l’intervalle existant entre deux dates est dateBetween. Elle renvoie l’intervalle de temps entre deux dates, mesuré en unité de temps telle que « days », « hours », « minutes »…
NB: Pour l’exemple présent, je n’utilise pas now() comme date du moment présent, mais une propriété de type date que j’appelle now() simulé et que je renseigne manuellement. Elle me permet de simuler la date du moment présent pour faire la démonstration et pour réaliser des tests.
Combien de jours y a-t-il entre une date et le moment présent ?
dateBetween(prop("Date"), prop("now() simulé"), "days")
</aside>
Réponses avancées :
Pour des dates sans précision d’heure, la formule indique bien la différence de jours. Cependant datebetween tient compte des heures et la formule peut être inexacte selon certaines conditions :
Si la date des événements n’a pas de précision d’heure (en réalité c’est une date avec une heure fixée à 00:00), la formule reste exacte, quelque soit la date du moment présent (Événements 2-1 à 2-3).
Si la date des événements contient une précision d’heure, la formule sera inexacte selon l’heure du moment présent (Événements 2-4 et 2-5) car l’unité de temps days correspond à 24h et s’il reste par exemple 2 jours et 21 heures et 27 minutes (Événement 2-5), la fonction renverra une différence de 2 (jours) alors qu’en langage explicite, l’événement se produira dans 3 jours.
NB : La date du moment présent contiendra toujours une heure (puisque le temps défile en permanence).
<aside> <img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1lbCIgd2lkdGg9IjFlbSIgaGVpZ2h0PSIxZW0iIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHZpZXdCb3g9IjAgMCAxMjAwIDEyMDAiPjxwYXRoIGZpbGw9IiM2NzIzMTciIGQ9Ik02MDAgMEMyNjguNjI5IDAgMCAyNjguNjI5IDAgNjAwczI2OC42MjkgNjAwIDYwMCA2MDBzNjAwLTI2OC42MjkgNjAwLTYwMFM5MzEuMzcxIDAgNjAwIDB6bS0yMC4zNjEgMjIxLjc3N2g0MC43MjN2MTIwLjA0NGgtNDAuNzIzVjIyMS43Nzd6bS0xNjYuNTUzIDM2LjAzNWw2OC44NDggOTguMjkxbC0zMy4zOTggMjMuNDM4bC02OC44NDgtOTguMjkxbDMzLjM5OC0yMy40Mzh6bTM3My44MjggMGwzMy4zOTggMjMuNDM4bC02OC44NDggOTguMjkxbC0zMy4zOTgtMjMuNDM4bDY4Ljg0OC05OC4yOTF6TTYwMCAzNzQuNjM0Yzk5Ljc1NCAwIDE4MC42MTUgNjAuNTQ5IDE4MC42MTUgMTM1LjI3OEw2NzguMDAzIDgyMC42NzlINTIxLjk5N0w0MTkuMzg1IDUwOS45MTJjMC03NC43MyA4MC44NjctMTM1LjI3OCAxODAuNjE1LTEzNS4yNzh6bS0zMjQuMzkgMzYuMDM1bDExMi43OTMgNDEuMDg5bC0xMy45ODkgMzguMzA2bC0xMTIuNzItNDEuMDg5bDEzLjkxNi0zOC4zMDZ6bTY0OC43OCAwbDEzLjkxNiAzOC4zMDZsLTExMi43OTMgNDEuMDg5bC0xMy45MTYtMzguMzA2bDExMi43OTMtNDEuMDg5ek0zODIuOTgzIDU4NS45MzhsMTAuNTQ3IDM5LjQwNGwtMTE1Ljk0MiAzMS4wNTVsLTEwLjU0Ny0zOS40MDRsMTE1Ljk0Mi0zMS4wNTV6bTQzNC4wMzQgMGwxMTUuOTQyIDMxLjA1NWwtMTAuNTQ3IDM5LjQwNGwtMTE1Ljk0Mi0zMS4wNTVsMTAuNTQ3LTM5LjQwNHptLTI5Ny4yOSAyNTcuNDQ2aDE2MC41NDd2NTMuOTc5SDUxOS43Mjd2LTUzLjk3OXptMCA4MC44NTloMTYwLjU0N3Y1My45NzlINTE5LjcyN3YtNTMuOTc5eiI+PC9wYXRoPjwvc3ZnPg==" alt="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1lbCIgd2lkdGg9IjFlbSIgaGVpZ2h0PSIxZW0iIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHZpZXdCb3g9IjAgMCAxMjAwIDEyMDAiPjxwYXRoIGZpbGw9IiM2NzIzMTciIGQ9Ik02MDAgMEMyNjguNjI5IDAgMCAyNjguNjI5IDAgNjAwczI2OC42MjkgNjAwIDYwMCA2MDBzNjAwLTI2OC42MjkgNjAwLTYwMFM5MzEuMzcxIDAgNjAwIDB6bS0yMC4zNjEgMjIxLjc3N2g0MC43MjN2MTIwLjA0NGgtNDAuNzIzVjIyMS43Nzd6bS0xNjYuNTUzIDM2LjAzNWw2OC44NDggOTguMjkxbC0zMy4zOTggMjMuNDM4bC02OC44NDgtOTguMjkxbDMzLjM5OC0yMy40Mzh6bTM3My44MjggMGwzMy4zOTggMjMuNDM4bC02OC44NDggOTguMjkxbC0zMy4zOTgtMjMuNDM4bDY4Ljg0OC05OC4yOTF6TTYwMCAzNzQuNjM0Yzk5Ljc1NCAwIDE4MC42MTUgNjAuNTQ5IDE4MC42MTUgMTM1LjI3OEw2NzguMDAzIDgyMC42NzlINTIxLjk5N0w0MTkuMzg1IDUwOS45MTJjMC03NC43MyA4MC44NjctMTM1LjI3OCAxODAuNjE1LTEzNS4yNzh6bS0zMjQuMzkgMzYuMDM1bDExMi43OTMgNDEuMDg5bC0xMy45ODkgMzguMzA2bC0xMTIuNzItNDEuMDg5bDEzLjkxNi0zOC4zMDZ6bTY0OC43OCAwbDEzLjkxNiAzOC4zMDZsLTExMi43OTMgNDEuMDg5bC0xMy45MTYtMzguMzA2bDExMi43OTMtNDEuMDg5ek0zODIuOTgzIDU4NS45MzhsMTAuNTQ3IDM5LjQwNGwtMTE1Ljk0MiAzMS4wNTVsLTEwLjU0Ny0zOS40MDRsMTE1Ljk0Mi0zMS4wNTV6bTQzNC4wMzQgMGwxMTUuOTQyIDMxLjA1NWwtMTAuNTQ3IDM5LjQwNGwtMTE1Ljk0Mi0zMS4wNTVsMTAuNTQ3LTM5LjQwNHptLTI5Ny4yOSAyNTcuNDQ2aDE2MC41NDd2NTMuOTc5SDUxOS43Mjd2LTUzLjk3OXptMCA4MC44NTloMTYwLjU0N3Y1My45NzlINTE5LjcyN3YtNTMuOTc5eiI+PC9wYXRoPjwvc3ZnPg==" width="40px" /> Pour palier le problème on va enlever les heures et les minutes de la date des événements et du moment présent :
Date sans les heures/minutes dateSubtract(dateSubtract(prop("Date"), hour(prop("Date")), "hours"), minute(prop("Date")), "minutes")
now() simulé sans les heures/minutes dateSubtract(dateSubtract(prop("now() simulé"), hour(prop("now() simulé")), "hours"), minute(prop("now() simulé")), "minutes")
</aside>
dateBetween(prop("Date sans les heures/minutes"), prop("now() simulé sans les heures/minutes"), "days")
dateBetween(dateSubtract(dateSubtract(prop("Date"), hour(prop("Date")), "hours"), minute(prop("Date")), "minutes"), dateSubtract(dateSubtract(prop("now() simulé"), hour(prop("now() simulé")), "hours"), minute(prop("now() simulé")), "minutes"), "days")