Comment calculer le nombre de jours ouvrés ?Salut la communauté
J'ai encore une fois besoin de votre aide et de vos conseils. En tant que nouvel utilisateur, j'ai du mal à apprendre.
J'ai un tableau de données avec la date de début et la date de fin. Je souhaite calculer le nombre de jours ouvrables entre la date de début et la date 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.
veuillez voir l'exemple ci-joint

Merci
Martin
Modélisation statistique avancéePersonnalisation de masseRe : Comment calculer le nombre de jours ouvrés ?Salut Jerry
c'était vraiment utile. J'ai fait ma propre liste et maintenant elle montre ce que je voudrais.
Merci
Martin
Re : Comment calculer le nombre de jours ouvrés ?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 tout autre jour spécifique que vous souhaitez exclure sont traités en conservant un fichier Holiday List.jmp stocké dans votre répertoire de compléments. 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 demandé. Suivez les instructions pour télécharger, installer et modifier le fichier Holiday List : Fonction JOURS RÉSEAU
J'espère que cela t'aides,
Jerry
Re : Comment calculer le nombre de jours ouvrés ?Mon préféré est la vieille Caroline du Nord vacances de baseball .
Re : Comment calculer le nombre de jours ouvrés ?Pour ajouter un peu à @Craige_Hales 'sable @Jeff_Perkinson En ce qui concerne les réflexions sur les vacances, etc., vous avez mentionné des réflexions sur la comptabilisation des « jours fériés locaux ». Cela devient vraiment difficile à moins que vous n'adoptiez une définition standard du terme « local ». Par exemple, le Canada a une fête de « Thanksgiving », tout comme les États-Unis. Sauf que c'est un jour différent sur le calendrier du 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 rendre le tout encore plus collant, certains commerces ferment... d'autres restent ouverts. Banques et institutions financières incluses.
Re : Comment calculer le nombre de jours ouvrés ?travailler avec le codage est nouveau pour moi et je n'arrive pas à le faire fonctionner. cependant, j'ai joué avec certaines des formules standard et trouvé des solutions. qui utilisent cependant des jours calendaires et non uniquement des jours ouvrables. Pour cette expérience, c'est suffisant dans la mesure où c'est la même chose à titre de comparaison.
Re : Comment calculer le nombre de jours ouvrés ?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 dans le futur 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 vilain problème, qui conduit à...
Une solution compliquée pourrait 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 afficher uniquement la date.)
Re : Comment calculer le nombre de jours ouvrés ?Oui, les jours ouvrables sont tous les jours de la semaine (du lundi au vendredi). Il serait préférable que je puisse également m'adapter aux jours fériés locaux.
Aucune suggestion?
Re : Comment calculer le nombre de jours ouvrés ?D'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 début 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 nombreuses (un 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 counted262 == countSelectedDaysInRange(01Jan2020, 31Dec2020, Name Expr(includeThisDate)) = 1;
104 == countSelectedDaysInRange(01Jan2020, 31Dec2020, Expr(!(2 <= Day Of Week(date) <= 6))) = 1;
366 == countSelectedDaysInRange(01 janvier 2020, 31 décembre 2020, 1) = 1 ;
0 == countSelectedDaysInRange (01 janvier 2020, 31 décembre 2020, 0) = 1 ;
Le code ci-dessus inclut le dernier jour (<= lastdate plutôt que
D'après une expérience douloureuse, je sais qu'il est difficile de travailler avec des dates et des heures.
Utilisez les fonctions intégrées autant que possible.
Commentez le code pour celui qui le maintiendra ensuite.
Testez soigneusement votre code !
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 décompte de 262.
modifier: différence de date(1jan2020,1jan2021,"jour")*5/7 la réponse grossière pourrait paraître plus simple
Re : Comment calculer le nombre de jours ouvrés ?La première chose que vous devez faire est de définir le « 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 ? Fêtes religieuses ?