Convertir nombre de jours en année, mois et jours [Résolu]

mehdiyou 14 Messages postés dimanche 5 novembre 2006Date d'inscription 1 mai 2008 Dernière intervention - 30 avril 2008 à 17:55 - Dernière réponse : FouBasic 10 Messages postés samedi 23 août 2003Date d'inscription 31 décembre 2008 Dernière intervention
- 31 déc. 2008 à 20:15
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 ......
Afficher la suite 

8 réponses

Répondre au sujet
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 30 avril 2008 à 19:17
+3
Utile
Salut,

Je ne sais pas s'il existe un fonction toute faite en .net mais déjà tu peux regarder cela : ici

En faite faut faire le contraire.....

A+
Exploreur

 Linux a un noyau, Windows un pépin
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Exploreur
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 30 avril 2008 à 21:23
+3
Utile
S'il existe une chose qui ne peut être transformée en une autre, c'est bien le nombre de jours en années, mois et jours !

La notion d'année et de mois est en effet calandaire et pas linéaire.

ainsi 28 jours peuvent faire un mois ici et 28 jours seulement là ...
31 jours peuvent faire un mois et 3 jours ou un mois (selon le cas de figure) !
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jmfmarques
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 30 avril 2008 à 21:26
+3
Utile
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).
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jmfmarques
mehdiyou 14 Messages postés dimanche 5 novembre 2006Date d'inscription 1 mai 2008 Dernière intervention - 30 avril 2008 à 21:36
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de mehdiyou
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 30 avril 2008 à 21:53
+3
Utile
Et non !

C'est précisément ce qu'il faut éviter ! (calculer le nombre de jours puis tenter de convertir ...) ! Non !

Fais une recherche sur ce forum avec le mot âge ...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jmfmarques
cs_christoni 140 Messages postés mardi 25 novembre 2003Date d'inscription 1 novembre 2010 Dernière intervention - 1 mai 2008 à 01:05
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_christoni
mehdiyou 14 Messages postés dimanche 5 novembre 2006Date d'inscription 1 mai 2008 Dernière intervention - 1 mai 2008 à 14:52
0
Utile
Merci beauuuuuucoup christoni. c'est exactement ce que je cherchais. Merci
Commenter la réponse de mehdiyou
FouBasic 10 Messages postés samedi 23 août 2003Date d'inscription 31 décembre 2008 Dernière intervention - 31 déc. 2008 à 20:15
0
Utile
Hmmm ....
Suite de teste, c'est presque vrai, mais c'est plutot cela je crois qui est plus précis....


        nbAns = maDureeJour \ 365.25
        nbmois2 = Abs(nbAns - (maDureeJour / 365.25))
        nbMois = Int(nbmois2 * 12)
        nbJours = Int(Abs(nbMois - (nbmois2 * 12)) * 365.25)


        Resutldata = (nbAns & " années " & nbMois & " mois " & nbJours & " jours ")
        ConvertisseurAnnMoisJour = Resutldata

A vous de vérifier...

Elie
Commenter la réponse de FouBasic

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.