Bonjour ,
Est ce qu'il y a une fonction L4G qui permet de calculer le nombre de jours ouvrés mais en tenant compte des jours fériés et les week-ends.
Merci d'avance.
Bonjour ,
Est ce qu'il y a une fonction L4G qui permet de calculer le nombre de jours ouvrés mais en tenant compte des jours fériés et les week-ends.
Merci d'avance.
c'est la version 11
Bonjour,
Vous pouvez essayer cette fonction (faite pour la V6, mais elle doit fonctionner en V11) :
#** #* Fonction qui calcule le délai entre 2 dates en jours ouvrés #* Jours semaine = tableau de dimension 7 (1=Non ou 2=Oui) #* #* @param ZDATE1 : Date début #* @param ZDATE2 : Date fin #* @param ZJRSEM : Jours semaine (tab dim 7) #* @param ZINDISP : Code indisponibilité (facultatif) #*! Funprog CALCUL_DELAI_INDISP(ZDATE1,ZDATE2,ZJRSEM,ZINDISP) Value Date ZDATE1,ZDATE2 Value Shortint ZJRSEM() Value Char ZINDISP Local Date ZDATE Local Shortint I,ZOK Local Integer ZRETOUR ZDATE = ZDATE1 If ZINDISP<>"" Local File TABUNAVAIL [F:TUV] Read [F:TUV]UVY0=ZINDISP If fstat : ZINDISP="" : Endif Endif While ZDATE<ZDATE2 # Contrôle si jour d'indisponibilité (férié) ZOK = 2 If ZINDISP<>"" For I=0 To 24 If ZDATE>=[F:TUV]UVYSTRDAT(I) and ZDATE<=[F:TUV]UVYENDDAT(I) ZOK = 1 Break Endif Next Endif If ZOK=2 and ZJRSEM(dayn(ZDATE)-1)=2 ZRETOUR += 1 Endif ZDATE += 1 Wend If ZINDISP<>"" Close Local File [F:TUV] Endif End ZRETOUR
Les jours ouvrées sont indiques dans le paramètre 3 via un tableau de 7 dimensions (2,2,2,2,2,1,1) pour indiquer que les jours ouvrés c'est du lundi au vendredi.
Dans le paramètre 4 indiquer le code de période d'indisponibilité qui contient la liste des jours fériés
Cdlt,
Piotr
Bonjour,
Vous pouvez essayer cette fonction (faite pour la V6, mais elle doit fonctionner en V11) :
#** #* Fonction qui calcule le délai entre 2 dates en jours ouvrés #* Jours semaine = tableau de dimension 7 (1=Non ou 2=Oui) #* #* @param ZDATE1 : Date début #* @param ZDATE2 : Date fin #* @param ZJRSEM : Jours semaine (tab dim 7) #* @param ZINDISP : Code indisponibilité (facultatif) #*! Funprog CALCUL_DELAI_INDISP(ZDATE1,ZDATE2,ZJRSEM,ZINDISP) Value Date ZDATE1,ZDATE2 Value Shortint ZJRSEM() Value Char ZINDISP Local Date ZDATE Local Shortint I,ZOK Local Integer ZRETOUR ZDATE = ZDATE1 If ZINDISP<>"" Local File TABUNAVAIL [F:TUV] Read [F:TUV]UVY0=ZINDISP If fstat : ZINDISP="" : Endif Endif While ZDATE<ZDATE2 # Contrôle si jour d'indisponibilité (férié) ZOK = 2 If ZINDISP<>"" For I=0 To 24 If ZDATE>=[F:TUV]UVYSTRDAT(I) and ZDATE<=[F:TUV]UVYENDDAT(I) ZOK = 1 Break Endif Next Endif If ZOK=2 and ZJRSEM(dayn(ZDATE)-1)=2 ZRETOUR += 1 Endif ZDATE += 1 Wend If ZINDISP<>"" Close Local File [F:TUV] Endif End ZRETOUR
Les jours ouvrées sont indiques dans le paramètre 3 via un tableau de 7 dimensions (2,2,2,2,2,1,1) pour indiquer que les jours ouvrés c'est du lundi au vendredi.
Dans le paramètre 4 indiquer le code de période d'indisponibilité qui contient la liste des jours fériés
Cdlt,
Piotr
Merci Beaucoup Piotr pour votre réponse ,
Je n'arrive pas à tester l'appel de ce funprog , je ne sais pas comment passer le tableau à 7 dimensions.
Exemple de mon test :
func CALCUL_DELAI_INDISP([07/04/2020],[08/04/2020],'(2,2,2,2,2,1,1)','AAA')
Pourriez vous m'aider à utiliser la bonne syntaxe?
Merci d'avance
Mohamed,
Il faut déclarer la variable tableau
Local Date ZD1,ZD2
Local Shortint ZJO(7)
ZJO(0)=2:ZJO(1)=2:ZJO(2)=2:ZJO(3)=2:ZJO(4)=2:ZJO(5)=1:ZJO(6)=1
ZD1=[07/04/2020]
ZD2=[08/04/2020]
Infbox num$(func CALCUL_DELAI_INDISP(ZD1,ZD2,ZJO,"FERIE"))
End
Merci beaucoup Piotr , ça marche
Merci :)
*Community Hub is the new name for Sage City