Comment calculer le nombre de jours ouvrables?Salut la communauté
J'ai encore besoin de votre aide et de vos conseils. En tant que nouvel utilisateur, j'ai du mal à apprendre.
J'ai une table de données avec la date de début et la date de fin. Je voudrais calculer le nombre de jours ouvrables entre la date de début et de fin ?? Quelle est la meilleure façon de faire cela dans JMP? Mon idée est d'ajouter une colonne et de créer une formule, par exemple Différence de date ?? Mais je ne sais pas quelle serait la meilleure option.
s'il vous plaît voir l'exemple ci-joint

Merci
Martin
AnalytiqueTableau de donnéesRe: Comment calculer le nombre de jours ouvrables?La première chose à faire est de définir «jour ouvrable». Est-ce tous les jours de la semaine (du lundi au vendredi)? Qu'en est-il des jours fériés bancaires / gouvernementaux? Des vacances religieuses?
Re: Comment calculer le nombre de jours ouvrables?Autres questions aussi: les dates JMP incluent toujours une heure, souvent fixée à zéro seconde après minuit. Mais si la plage va du lundi midi au lundi midi 7 jours plus tard, comment voulez-vous compter les deux demi-lundis? Ou même s'il est minuit au début du lundi, faut-il compter les deux?
Compter les jours n'est peut-être pas un mauvais choix si vos plages sont petites et pas trop (le code mal testé suit):
// define an expression that answers the question
includeThisDate = Expr(
2/*monday*/<= Day Of Week( date ) <= 6/*friday*/
);
// brute force counting:
countSelectedDaysInRange = Function( {firstDate, lastDate, testexpr},
{date, count},
If( lastDate < firstDate,
Throw( "dates reversed" )
);
count = 0;
For( date = firstDate, date <= lastDate, date += In Days( 1 ),
count += (testexpr != 0)
);
count;
);
Show( 262 == countSelectedDaysInRange( 1jan2020, 31dec2020, Name Expr( includeThisDate ) ) );
Show( 104 == countSelectedDaysInRange( 1jan2020, 31dec2020, Expr( !(2/*monday*/<= Day Of Week( date ) <= 6/*friday*/) ) ) );
Show( 366 == countSelectedDaysInRange( 1jan2020, 31dec2020, 1 ) );// 2020 is leap year
Show( 0 == countSelectedDaysInRange( 1jan2020, 31dec2020, 0 ) );// no days counted 262 == countSelectedDaysInRange (01Jan2020, 31Dec2020, Name Expr (includeThisDate)) = 1;
104 == countSelectedDaysInRange (01Jan2020, 31Dec2020, Expr (! (2 <= Day Of Week (date) <= 6))) = 1;
366 == countSelectedDaysInRange (01Jan2020, 31Déc2020, 1) = 1;
0 == countSelectedDaysInRange (01Jan2020, 31Déc2020, 0) = 1;
Le code ci-dessus inclut le dernier jour (<= lastdate plutôt que
D'après une expérience douloureuse, je sais que travailler avec des dates et des heures est difficile à obtenir.
Utilisez autant que possible les fonctions intégrées.
Commentez le code pour celui qui le maintient ensuite.
Testez votre code attentivement!
De plus, si vous n'avez besoin que d'une approximation grossière,
(1jan2021-1jan2020) / indays (1) * 5/7 == 261.428571428571
ce qui est proche du nombre de 262.
Éditer: différence de date (1jan2020,1jan2021, "jour") * 5/7 peut sembler plus simple pour la réponse grossière
Re: Comment calculer le nombre de jours ouvrables?oui les jours ouvrables sont tous les jours de la semaine, (du lundi au vendredi), il serait préférable que je puisse également ajuster les jours fériés locaux
Aucune suggestion?
Re: Comment calculer le nombre de jours ouvrables?La solution simple serait d'étendre l'expression de test.
// define an expression that answers the question
holidays = associativearray({1jan2020,25dec2020});
includeThisDate = Expr(
(2/*monday*/<= Day Of Week( date ) <= 6/*friday*/)
&
!(holidays<<CONTAINS></CONTAINS>Le Nouvel An et Noël tombent en semaine en 2020, donc 260 au lieu de 262. Vous devrez mettre à jour le tableau associatif ultérieurement, et vous aurez peut-être également besoin de données historiques. Certains jours fériés ne tombent pas le même jour chaque année. Quel horrible problème, qui conduit à ...
Une solution compliquée peut utiliser quelque chose comme https://www.abstractapi.com/holidays-api
(Crédit à @Jeff_Perkinson pour Modification d'une colonne de date et d'heure pour ne donner que la date. )
Re: Comment calculer le nombre de jours ouvrables?travailler avec le codage est nouveau pour moi et je ne semble pas le faire fonctionner. Cependant, j'ai joué avec certaines des formules standard et j'ai trouvé des solutions. qui utilisent toutefois des jours civils et non des jours ouvrables uniquement. Pour cette expérience, c'est assez bien car c'est la même chose pour la comparaison.
Re: Comment calculer le nombre de jours ouvrables?Pour ajouter un peu à @Craige_Hales 'le sable @Jeff_Perkinson les réflexions de vacances sur les vacances, etc., vous avez mentionné des réflexions sur la comptabilisation des «vacances locales». Cela devient vraiment difficile à moins que vous n'adoptiez une définition standard du terme «local». Par exemple, le Canada a des vacances de «Thanksgiving», tout comme les États-Unis. Sauf que c'est un jour différent sur le calendrier pour le Canada par rapport aux États-Unis. Et ne me lancez même pas au niveau d'une ville ou d'un état aux États-Unis. Par exemple, dans les États du Maine et du Massachusetts, le Patriot's Day est un jour férié, qui n'est célébré nulle part ailleurs aux États-Unis. Pour le rendre encore plus collant, certaines entreprises ferment ... d'autres restent ouvertes. Banques et institutions financières incluses.
Re: Comment calculer le nombre de jours ouvrables?Mon préféré est l'ancienne Caroline du Nord vacances de baseball .
Re: Comment calculer le nombre de jours ouvrables?salut @Martinej ,
J'ai écrit il y a quelque temps un complément qui calcule le nombre de jours ouvrables entre deux colonnes de date. Les jours fériés et tous les autres jours spécifiques que vous souhaitez exclure sont traités en conservant un fichier Holiday List.jmp stocké dans votre répertoire de complément. Remarque: ce fichier peut être n'importe quel document (Excel, .txt, .csv, etc.) conservé dans n'importe quel emplacement accessible par la machine de l'utilisateur JMP, cependant, cela nécessiterait une modification mineure du JSL sous-jacent pour fournir l'emplacement du fichier. Sinon, je pense que cela répond tel quel à votre besoin. Suivez les instructions pour télécharger, installer et modifier le fichier Holiday List: Fonction NETWORKDAYS
J'espère que cela t'aides,
Jerry
Re: Comment calculer le nombre de jours ouvrables?Salut Jerry
c'était vraiment utile. J'ai fait ma propre liste et maintenant elle montrait ce que j'aimerais.
Merci
Martin