mettre ces deux fonctions dans la page ou dans un Include et appeler la fonction nbjour...(datededebut,datedefin)
Source / Exemple :
function nbjourouvrable(datdeb,datfin)
if datdeb="" or datfin="" then exit function
nbjourtot = DateDiff("d",datdeb,datfin) + 1
for i=1 to nbjourtot
if ferie(datdeb) then
nbjourtot = nbjourtot - 1
end if
datdeb=DateAdd("d",1,datdeb)
next
nbjourouvrable=nbjourtot
End function
function ferie(Jour)
if jour="" then exit function
Dim JJ,AA
Dim NbOr, Epacte
Dim PLune, Paques, Ascension, Pentecote
JJ = Day(Jour)
mm = Month(Jour)
AA = Year(Jour)
If JJ = 1 And mm = 1 Then ferie = True: Exit Function '1 Janvier
If JJ = 1 And mm = 5 Then ferie = True: Exit Function '1 Mai
If JJ = 8 And mm = 5 Then ferie = True: Exit Function '8 Mai
If JJ = 14 And mm = 7 Then ferie = True: Exit Function '14 Juillet
If JJ = 15 And mm = 8 Then ferie = True: Exit Function '15 Août
If JJ = 1 And mm = 11 Then ferie = True: Exit Function '1 Novembre
If JJ = 11 And mm = 11 Then ferie = True: Exit Function '11 Novembre
If JJ = 25 And mm = 12 Then ferie = True: Exit Function '25 Décembre
NbOr = (AA Mod 19) + 1
Epacte = (11 * NbOr - (3 + Int((2 + Int(AA / 100)) * 3 / 7))) Mod 30
PLune = CDate("19/04/" & AA) - ((Epacte + 6) Mod 30)
If Epacte = 24 Then PLune = PLune - 1
If Epacte = 25 And (AA >= 1900 And AA < 2000) Then PLune = PLune - 1
Paques = PLune - Weekday(PLune) + vbMonday + 7 'Paques
If JJ = Day(Paques) And mm = Month(Paques) Then ferie=true : Exit Function
Ascension = Paques + 38 'Ascension
If JJ = Day(Ascension) And mm = Month(Ascension) Then ferie=true : Exit Function
Pentecote = Ascension + 11 'Pentecote
If JJ = Day(Pentecote) And mm = Month(Pentecote) Then ferie=true : Exit Function
ferie = False
Dim numjour
numjour=weekday(jour,vbmonday) 'fixe à 6 et 7 la valeur du samedi & dimanche
if numjour=6 or numjour=7 then ferie=true : Exit function
End function
Conclusion :
Attention l'appel de la fonction nbjourouvrable faite appel a la fonction ferie qui elle peut etre appellée indépendamment pour savoir si un jour est férié
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.