Datediff
bonjour, voila ma question:
ss VB, j'utilise la fonction datediff pour faire une différence entre 2 dates: ok. Ce que je voudrais faire c'est une différence entre 2 dates sans tenir compte des week end, c'est a dire qu'il me donne le nb de jours de travail effectif.
y'aurait moyen?
ss VB, j'utilise la fonction datediff pour faire une différence entre 2 dates: ok. Ce que je voudrais faire c'est une différence entre 2 dates sans tenir compte des week end, c'est a dire qu'il me donne le nb de jours de travail effectif.
y'aurait moyen?
3 réponses
-
Salut, jer crois pas qu'il y ait de fonction toute faite. Mais tu peux la créer très facilement.
J'ai ecris cela, c'est un peu grossier, mais ca marche, y'a surement mieux...
NombJourOuvert c'est la fonction qui te calcule comme son nom l'indique, le nombre de jours ouvers. Donc à la place de Datediff, tu ecris NombJourOuvert
La 2eme fonction calcule le nombre de jour identique entre 2 dates (le nombre de dimanche, le nombre de lundi...)
Pour info, le dimanche a la valeur 1, le samedi a la valeur 7, c'est comme cela dans access.
Public Function NombJourOuvert(MaVieilleDate As Date, MaDateRecente As Date) As Integer
NombJourOuvert = DateDiff("d", MaVieilleDate, MaDateRecente) - NombDuJourEntreDeuxDates(MaVieilleDate, MaDateRecente, 1) - NombDuJourEntreDeuxDates(MaVieilleDate, MaDateRecente, 7)
End Function
Public Function NombDuJourEntreDeuxDates(MaVieilleDate As Date, MaDateRecente As Date, LeJour As Integer) As Integer
Dim NombreJour As Integer, i As Integer, DateCourante As Date
NombDuJourEntreDeuxDates= 0
NombreJour = DateDiff("d", MaVieilleDate, MaDateRecente)
DateCourante = MaDateRecente
For i = 0 To NombreJour
ValeurJour = Weekday(DateCourante)
If ValeurJour = LeJour Then
NombDuJourEntreDeuxDates= NombDuJourEntreDeuxDates + 1
End If
DateCourante = DateAdd("d", 1, DateCourante)
Next i -
Contributeurplutot:
labelx.caption= NombreDeJoursOuvert (MaDate, MonAutreDate)
ö,ö
\_/ -
ContributeurPar contre, gaffe au jours feries...
ö,ö
\_/-
-
Contributeur@coinT'inquiete, le plus douloureux est surement passe...
QUant a petite mure, vous bossez ensemble? C'est vrai que les questions tiraient parfois dans le meme domaine
ö,ö
\_/ -
@teebooui, on est dans la même boite à croissy sur seine. 2 pinces en VB .
Bon, sinon le code ne plante pas .Par contre ca donne des résultats bizarres: comme s'il n'y avait qu'un seul we dans le mois. C'est le patron qui va etre content!
Allez, je replonge en sous marin dans l'enfer de la correction des erreurs de frappe que j'ai du faire :-( -
Contributeur@coinTu crois qu'ils embauchent du monde chez toi?
C'est pas pour moi, mais je connais du monde qui rame pour trouver...
ö,ö
\_/ -
@teeboIls peuvent toujours envoyer un courrier, comme il y a pas mal de boulot en ce moment .
site de la boite : www.Docwave.com
-