Cette fonction calcule la date de fin à partir d'une date de début et d'une durée. Pas compliqué. Mais là où ça se corse c'est qu'il faut enlever les week-ends.
Cette fonction utilise la récursivité.
Source / Exemple :
<%
'//---------------------------------------------------------------------------
'// CALCULE la date de fin et Enlève les jours des week-ends
'//---------------------------------------------------------------------------
dim cpte
Function CalculDateFin(DateD, duree)
Dim NbJourWE
Dim DateC, DateFin
'//Cas de la durée non entière : ex. 2,5 jours
If (CStr(duree) > CStr(Int(duree))) Then
duree = duree + 1
End If
DateC = DateD
DateFin = DateAdd("d", Int(duree), DateC)
If (cpte = 0) Then
DateFin = DateAdd("d", duree - 1, DateC)
Else
If (DatePart("w", DateC) = 1 Or DatePart("w", DateC) = 7) Then
DateC = DateAdd("d", 1, DateC)
End If
End If
cpte = cpte + 1
While (CDate(DateC) <= DateFin)
If (DatePart("w", DateC) = 1 Or DatePart("w", DateC) = 7) Then
NbJourWE = NbJourWE + 1
End If
DateC = DateAdd("d", 1, DateC)
Wend
If (NbJourWE > 0) Then
DateFin = CalculDateFin(DateFin, NbJourWE)
NbJourWE = 0
End If
cpte = 0
CalculDateFin = DateFin
End Function
%>
Conclusion :
J'espère que cette fonction sera utile à quelqu'un.
J'ai la même fonction en C++ et une autre plus simple qui calcule la durée entre 2 dates sans compter les week-ends
A bientôt
Tatal
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.