cs_warzet
Messages postés99Date d'inscriptionjeudi 17 janvier 2008StatutMembreDernière intervention25 juillet 2013
-
12 mars 2010 à 18:56
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
22 mars 2010 à 12:54
Bonjour à tous, je sollicite votre aide pour m'aider à resoudre mon problèment en matière de calcul de durée entre deux dates sous vb6. Merci d'avance.
Voici donc mon Problème.
Function CalculDuree(DateN As String, DateCS As String) As String
If IsDate(DateN) = False Then Exit Function
If IsDate(DateCS) = False Then Exit Function
Dim jN1, jC1, mN1, mC1, aN1, aC1 As Integer
Dim Jage, Mage, Aage As Integer
Dim Jdif As Integer
If aC1 < aN1 Then Exit Function
If aC1 = aN1 And mC1 < mN1 Then Exit Function
If aC1 aN1 And mC1 mN1 And jC1 < jN1 Then Exit Function
If aC1 aN1 And mC1 mN1 And jC1 = jN1 Then
Mage = 0
Jage = 0
Aage = 0
GoTo caline1
End If
' Permet de savoir le nombre de jours du mois (fevrier inclus)
Dim sdt1 As Date
Dim sdt2 As Date
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 mars 2010 à 20:19
Salut
Pas eu le courage de détailler ton code.
Juste un conseil : Intéresse-toi aux fonctions DateDiff et DateAdd
Tu verras que ce sera beaucoup plus sûr et plus simple.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 mars 2010 à 20:23
Pour le principe :
- tu calcules le nombre d'années entières entre tes deux dates --> mémoire Années
- tu ajoutes ces années entières à la vieille date
- tu calcules le nombre de mois entiers entre tes deux dates --> mémoire Mois
- tu ajoutes ces mois entiers à la vieille date
- tu calcules le nombre de jour entiers entre tes deux dates --> mémoire Jours
cs_warzet
Messages postés99Date d'inscriptionjeudi 17 janvier 2008StatutMembreDernière intervention25 juillet 20131 22 mars 2010 à 12:47
Je voudrais vous remercier tous pour l'aide que vous avez bien voulu m'apporter. J'y suis arrivé et je publie ici le résultat qui pourrait aider d'autres personnes qui se retrouveraient dans la même situation que moi.
La fonction devient donc:
Public Function AgeDuree(D1 As Date, D2 As Date) As String
Dim Annees As Long, Mois As Long, Jours As Long, DecalMois As Long
On Error GoTo Erreur:
If D1 > D2 Then
AgeDuree = "Dates invalides"
Exit Function
End If
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 22 mars 2010 à 12:54
plutot complexe...
If Jours 30 And Mois 11 Then
Jours = Jours - 30
Mois = Mois + 1
If Mois + 1 = 12 Then
Mois = Mois - 12
Annees = Annees + 1
End If
End If
étrange, non ?
pour entrer dans le corps principal, il faut Mois = 11
tu y fait Mois = Mois +1
donc Mois = 12
du coup, le test If Mois + 1 = 12
ne sera jamais utilisé ....