Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CALCUL DE L'AGE


Information sur la source

Catégorie :Trucs & Astuces Source .NET ( DotNet ) Classé sous : age, datedenaissance Niveau : Débutant Date de création : 20/07/2006 Vu : 10 837

Note :
6,67 / 10 - par 3 personnes
6,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (22)
Ajouter un commentaire et/ou une note

Description

fonction toute simple en vb.net pour savoir l'âge d'une personne.
 

Source

  • Protected Sub calcul_age()
  • Dim datetimenow = DateTime.Now
  • Dim datedenaissance = CDate(TbDn.Text)
  • Dim age As Integer
  • age = CInt(Now.Year - datedenaissance.Year)
  • If (datedenaissance.Month > Now.Month) Then
  • age = age - 1
  • End If
  • If ((datedenaissance.Month = Now.Month) And (datedenaissance.Day > Now.Day)) Then
  • age = age - 1
  • End If
  • Me.Label3.Text = " Age : " & age & " ans"
  • End Sub
Protected Sub calcul_age()

        Dim datetimenow = DateTime.Now
        Dim datedenaissance = CDate(TbDn.Text)
        Dim age As Integer


        age = CInt(Now.Year - datedenaissance.Year)
        If (datedenaissance.Month > Now.Month) Then

            age = age - 1
        End If
        If ((datedenaissance.Month = Now.Month) And (datedenaissance.Day > Now.Day)) Then

            age = age - 1
        End If


        Me.Label3.Text = " Age : " & age & " ans"

    End Sub

Commentaires et avis

signaler à un administrateur
Commentaire de Bidou le 20/07/2006 10:36:59 administrateur CS

C'est effectivement assez léger comme code source...

signaler à un administrateur
Commentaire de io_ost le 20/07/2006 11:12:08

ça calcul l'âge !! j'avais pas promis la lune ^^ (niveau débutant) je suis sûr que ça peu servir à quelqu'un (moi ça m'aurais fais gagner du temps)

signaler à un administrateur
Commentaire de dvdstory le 26/07/2006 15:42:26

Bonjour
J'ai un pb à la ligne de code ci-dessous.
Dim datedenaissance = CDate(TbDn.Text)
Le debbugger me dit que "La conversion de la chaîne en type 'Date' n'est pas valide."
Pourriez vous me donner la bonne syntaxe pour la date SVP.

Merci d'avance

signaler à un administrateur
Commentaire de Bidou le 27/07/2006 20:57:25 administrateur CS

Je pense qu'un snippet sur codyx aurait suffit, m'enfin!

signaler à un administrateur
Commentaire de io_ost le 27/07/2006 22:41:55

    Protected Sub calculage()
        Dim str As String = "26/01/1977"
        Dim datetimenow = DateTime.Now
        Dim datedenaissance = CDate(str)
        Dim age As Integer
        Dim str2 As String

        age = CInt(Now.Year - datedenaissance.Year)
        str3 = " Age : " & age & " ans"
        If (datedenaissance.Month > Now.Month) Then

            age = age - 1
            str2 = " Age : " & age & " ans"
        End If
        If ((datedenaissance.Month = Now.Month) And (datedenaissance.Day > Now.Day)) Then

            age = age - 1
            str2 = " Age : " & age & " ans"
        End If
    End Sub

tu est tombé amoureux de ma sub bidou ?

signaler à un administrateur
Commentaire de dvdstory le 28/07/2006 07:42:53

erreur, ta mis str3 a la place de str2 et j'ai rajouté la ligne de code pour afficher la résultat que t'avais mis dans code original pas dans le le post.

Protected Sub calculage()

        Dim str As String = "26/01/1977"
        Dim datetimenow = DateTime.Now
        Dim datedenaissance = CDate(str)
        Dim age As Integer
        Dim str2 As String

        age = CInt(Now.Year - datedenaissance.Year)
        str2 = " Age : " & age & " ans"
        If (datedenaissance.Month > Now.Month) Then

            age = age - 1
            str2 = " Age : " & age & " ans"
        End If
        If ((datedenaissance.Month = Now.Month) And (datedenaissance.Day > Now.Day)) Then

            age = age - 1
            str2 = " Age : " & age & " ans"
        End If

        Me.Label1.Text = " Age : " & age & " ans"   'Affiche dans un label  

    End Sub

signaler à un administrateur
Commentaire de io_ost le 28/07/2006 08:59:02

désolé j'avais changer le nom des strings avant le post pour la présentation  ! ^^

ciao bon dev....

signaler à un administrateur
Commentaire de olixelle le 28/07/2006 16:20:08

en plus simple:
_______________________________________________________________________________
    Protected Sub calcul_age()

        Dim datedenaissance = CDate(TbDn.Text)
        Dim age As Integer = DateDiff(DateInterval.Year, DateTime.Now, datedenaissance)

        Me.Label3.Text = " Age : " & age & " ans"

    End Sub
__________________________________________________________________________________

signaler à un administrateur
Commentaire de io_ost le 01/08/2006 12:21:58

pas mal olixelle je test .... et j'essaye de rajouter le nombre de mois et de jours ...

signaler à un administrateur
Commentaire de wan186 le 11/08/2006 15:59:54

Olixelle: Il y a un prob avec DateDiff: il ne tient pas compte du mois et du jour. Si on est en Octobre 2006 et que la date de naissance est Novembre 2000, alors il donne un age de 6 ans... au lieu de 5.
Donc vive IO_OST ;-)

signaler à un administrateur
Commentaire de wan186 le 11/08/2006 16:10:07

Voilà le mix des deux... exact et sans utilisation de cast!

Dim age As Integer = DateDiff(DateInterval.Year, NaissDacDateTimePicker.Value, DateTime.Now)
If Today.Month > NaissDacDateTimePicker.Value.Month Or Today.Month = NaissDacDateTimePicker.Value.Month AndAlso Today.Day >= NaissDacDateTimePicker.Value.Day Then
    age += 1
End If

signaler à un administrateur
Commentaire de avrillavigne1 le 02/10/2006 18:38:17

merci pour le code

signaler à un administrateur
Commentaire de Clad49 le 21/01/2007 22:31:06

Salut

Essayez ca :

Private Function Age(ByVal vDate As String) As Integer
    age = Math.Floor(DateDiff(Microsoft.VisualBasic.DateInterval.Month, CDate(vDate), Today, ) / 12)
End Function

et pour l'appeler :

MsgBox(Age("11/05/1985"))

bonne prog ;)

Clad

signaler à un administrateur
Commentaire de nerazzurro01 le 12/04/2007 13:43:05

bonjour je chercher dont j 'ai besion
g deux champs de datime piker et je veux calculer la date diffence entre les deux mais ca marche
j'aimerai bien avoir code qui marche de votre part
c urgent
merci

signaler à un administrateur
Commentaire de Renfield le 12/04/2007 14:43:00 administrateur CS

Clad49, ton code n'est pas précis...

en VB6 :

Age = val(datediff("D", DateNaissance, DateJour)/365.25)

signaler à un administrateur
Commentaire de Streptococcus le 27/06/2007 10:42:17

La solution de Renfiel est simple et efficace, mon seul problème avec elle, c'est que quand, ayant déclaré une fonction du type :
Public Function age(DateNaissance As Date) As Integer
    age = Int(DateDiff("d", DateNaissance, Date) / 365.25)
End Function
je passe en paramètre DateNaissance une date du type jj/mm/aaaa, j'obtiens systématiquement un age de 107 ans. En fait en passant la fonction au débugger, je m'aperçois qu'il transforme DateNaissance en une heure (00:00:00) donc à chaque fois il me calcule un age pour une date de naissance du 01/01/1900...
Est-ce que quelqu'un saurait comment résoudre ce facheux problème ?
Merci d'avance
Quentin

signaler à un administrateur
Commentaire de Renfield le 27/06/2007 11:03:56 administrateur CS

une date est une date...

que transmets tu, exactement ?

signaler à un administrateur
Commentaire de Streptococcus le 27/06/2007 11:40:40

Alors après investigations complémentaires, et ayant utilisé la fonction de deux manières différentes :
Quand je fait :
Dim mon_age As Integer
mon_age = age(08/09/1984)
Dans ce cas, vu que l'on est en 2007, j'obtient un age de 107, car dans la fonction, la date doit être transformée en 01/01/1900...je suis sous VB6, donc j'ai un mode débug un peu primaire qui permet néanmoins de voir la valeur des variables, et donc en mode pas à pas, quand je suis dans la fonction et que je passe ma souris sur la variable DateNaissance, je ne lis que 00:00:15 ou quelques chose dans le genre.

Par contre j'ai utilisé la fonction comme suit :
Dim un_age As Integer
un_age = age(rst(date_naissance)), où rst est le résultat d'une requête SQL d'un champ date.
Et là ça à l'air de marcher parfaitement.

Donc d'après ce que je comprend, la fonction telle qu'elle est écrite dans mon précédent post reconnait le format date de ma bdd (SmallDateTime sous SQL Server), par contre il ne reconnait pas un format rentré en dur du type jj/mm/aaaa...

J'aimerais juste comprendre pourquoi...mais bon, l'un dans l'autre, la fonction à l'air de marcher pour ce que je veux en faire, donc si ce que je viens de te raconter n'est absolument pas clair...batailles pas.

Merci en tout cas
Quentin

signaler à un administrateur
Commentaire de Renfield le 27/06/2007 11:51:39 administrateur CS

mon_age = age(08/09/1984)
8 divisé par 9 divisé par 1984 ...

Fais plutot :
mon_age = age(#9/8/1984#)

signaler à un administrateur
Commentaire de Streptococcus le 27/06/2007 12:05:03

Bravo et merci Renfield...tu as tout bon

signaler à un administrateur
Commentaire de jaknight007 le 04/06/2009 19:28:22

Renfield et clad49 on raison, mais pour être plus précis, j'utilise :

Dim ageEntier As Integer
Dim ageDecimal As Double

'Trouver l'âge de la personne avec des décimale
ageDecimal = vDateReference.Value.Subtract(vDateNaissance.Value).Days / 365.25
'Supprimer les décimales
ageEntier = CType(Math.Floor(ageDecimal), Integer)


ageEntier nous donne la bonne réponse.

signaler à un administrateur
Commentaire de jaknight007 le 04/06/2009 19:30:01

Renfield et clad49 ont raisons, mais pour être plus précis, j'utilise :

Dim ageEntier As Integer
Dim ageDecimal As Double

'Trouver l'âge de la personne avec des décimale
ageDecimal = vDateReference.Subtract(vDateNaissance).Days / 365.25
'Supprimer les décimales
ageEntier = CType(Math.Floor(ageDecimal), Integer)


ageEntier nous donne la bonne réponse.

désolé, l'autre post contenait des date nullable (dim vDateReference as date? )

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Calculer l'age d'une personne [ par Amstel ] Je cherche la formule magique qui permet de calculer l'age d'une personne par rapport à la date du jour.Par exemple, pour une personne née le 10/06/19 Base de donnée : j'ai un problème [ par LEAU ] Bonjour, j'ai un problème j'ai une base de donnée simple, avec trois colones : nom, prénom, et ageJe voudrais pouvoir créer une liste de choix qui se Différentes informations dans un même fichier ? [ par Gengis Kahn ] Comment faire pour enregistrer plusieurs types d'informations différentes dans un même fichier et de pouvoir les retrouver facilement.ex: NOM, PRENOM, Renvoyer une valeur dans un MsgBox [ par Vbsupernul ] Voilà, c'est un truc tout con, je voudrais savoir comment renvoyer la valeur d'un InputBox, du styleage=InputBox("Veuillez entrer votre age") MsgBox(" Urgent!!! convertion age... [ par sonoboss ] Voila je fé une appli sur le milieu médical et je dois notemment travailler avec l'ages des patients...Seulement voilà : 8,23 ans ca leur parle pas bc Age de qqn à partir de sa date de naissance [ par dehayef ] Bonjour,j'ai besoind 'avoir l'age de qqn à partir de sa date de naissance. J'utilise la fonction DateDiff entre la datede naissance et la date du jour calcule de l'age [ par pen ] j ai un petit probleme avec le calcul de l'age j'ai une base de donnée sur access ou il y'a la date de naissance et je veus connaitre l'age alors i TRI DANS UN LISTVIEW [ par reyman ] J'utilise un controle listview en mode "détails" avec 3 colonnes.Une pour le nom, la 2eme pour le prénom, la 3eme pour l'age.J'arrive a trier les donn Comparer des date(année) [ par Exploreur ] Salut à tous,J'ai une listview avec une colonnes qui représente les années,et je voudrais par le biais de mon 'imputbox' ou je rentre l'age minimun et envoi de mail [ par ouaibsniper ] salut allj'ai créé 2 textbox :_nom ( text1 )_age ( text2 )et un bouton :_envoyer ( command1 )je voudrai que le nom et l'age me sois envoyé dans un e-m


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,515 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.