mehdiyou
Messages postés14Date d'inscriptiondimanche 5 novembre 2006StatutMembreDernière intervention 1 mai 2008
-
30 avril 2008 à 17:55
Whismeril
Messages postés19144Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 6 septembre 2024
-
22 juin 2018 à 08:06
salut tout le monde y'aurai t il quelqu'un qui pourrait me donner une fonction qui permet de convertir un nombre de jours en année,mois et jour.(Exp: 376 jours= 1an et 11 jours). en fait je voudrai calculer l'âge d'une personne (c'est à dire soustraction entre 2 date) .J'ai fait
diff = DtR.Subtract(Me.CC._Dtt.Rows(i).Item(4))
mais j'aurai la diffèrence en nombre de jours c'est à dire âge=5376 jours au lieu de 14 ans et ......
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 30 avril 2008 à 21:26
La notion d'âge (ou de durée) est autre chose et le calcul ne se fait pas à partir d'un nombre de jours, mais de deux dates (une de début et l'autre de fin).
mehdiyou
Messages postés14Date d'inscriptiondimanche 5 novembre 2006StatutMembreDernière intervention 1 mai 2008 30 avril 2008 à 21:36
oui jmfmarques. le nombre de jours comme tu me l'as dit a été calcué à partir d'une diffèrence entre 2 dates (date Début et Date Fin) donc j'ai voulu convertir ce résultat en x année, y mois, z jours
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_christoni
Messages postés140Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 1 novembre 20107 1 mai 2008 à 01:05
Bonjour,
jmfmarques l'a fait pour des heures, minutes ...
Voici son code appliquer à ton problème et qui devrait fonctionner :
Function ConvertisseurAnnMoisJour(ByVal maDureeJour As Integer) As Integer
Dim nbAns As Integer
Dim nbMois As Integer
Dim nbJours As Integer
'\, opérateur : Effectue la division de deux nombres et retourne le résultat sous forme d'entier.
'Mod, opérateur (Visual Basic) : Effectue la division de deux nombres et retourne seulement le reste.
nbAns = maDureeJour \ 365.25
nbMois = (maDureeJour Mod 365.25) \ 30.4375
nbJours = (maDureeJour Mod 365.25) Mod 30.4375
'Pour tester, à adapter bien sûr.
Return MsgBox(nbAns & " années " & nbMois & " mois " & nbJours & " jours ")
End Function
5376 me donne 14 ans 8 mois et 19 jours, l'âge de ta personne.
Bonne continuation.
Whismeril
Messages postés19144Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 6 septembre 2024660
>
casio
22 juin 2018 à 08:06
Bonjour casio.
Sauf que ce calcul est faux, comme l’a ecrit jmfmarques, que je salue au passage, il n’y a pas 30,4375 jours par moi, mais 28, 29, 30 ou 31.
Il y a donc des cas ou ce calcul donnera un résultat inexact.
La bonne méthode est de cacluler avec les dates.