le 07-25-2019 04:39 AM
Bonjour, Et merci pour votre aide.
Je voudrais soustraire 2 dates pour compter le Nb de jours ouvrés.
Soustraire 2 dates, jusque la pas de soucis, par contre enlever tous les week end s'il y en a, c'est la que je bloque.
Merci d'avance si vous avez une idée à me proposer.
le 07-29-2019 09:49 AM
Il faut y aller un jour à la fois. Part de la date la plus ancienne, vérifie si c'est un jour de semaine (ajoute 1 si c'est le cas) puis ajoute 86400 (1 journée) au timestamp de la date de départ pour passer à la journée suivante. Continue ainsi jusqu'à la date soit égale à la date finale.
Pour vérifier si c'est un jour de semaine utilise le vi Seconds To Date/Time.vi et fait un unbundle à la sortie pour récupérer l'information "day of week" (1 correspond au dimanche et 7 au samedi).
Ben64
le 07-30-2019 02:17 AM
Bonjour Ben64,
Merci pour ta réponse, je comprends mieux,
Voici ce que j'ai fait en suivant tes explications.
Peut être y a t-il une meilleur solution? En tous cas ça fonctionne MERCI ENCORE !!
le 07-30-2019 08:54 AM
Ce n'est pas mal mais j'aurais les commentaires suivant sur ton code. En considérant que les 2 jours première date et deuxième date sont considérées comme des journées complètes:
L'arrêt conditionnel de la boucle FOR est inutile puisque tu utilises le terminal N. Utiliser l'égalité sur les timestamps 1ere et 2ieme date est à éviter car même si éventuellement les dates sont les mêmes si les heures, minutes, secondes, fractions de seconde sont différentes il n'y aura jamais égalité. Même si on utilise >= il y aura une incertitude de +/- 1 journée selon que l'heure de la seconde date est > ou < à celle de la première date.
Dans ton code il a également une incertitude sur le nombre de jours total à cause de la conversion de la valeur DBL en I32 qui sert à indexer la boucle FOR (arrondie à la valeur supérieure ou non selon que la partie décimale est >= 0.5, encore une fois ceci est est lié aux heures utilisées pour date 1 et date 2). Il serait préférable d'utiliser la fonction Quotient & Reminder.
Ssi les heures sont toujours égales à la même constante pour les deux dates alors ton code fonctionnera bien.
Voici ma solution:
La structure Case utilise comme autre cas: "1, 7, Default" où je ne fait que passer le fil du nombre de jours ouvrés.
Ben64