Age de qqn à partir de sa date de naissance

dehayef Messages postés 3 Date d'inscription lundi 26 août 2002 Statut Membre Dernière intervention 1 décembre 2005 - 26 mars 2003 à 13:23
AlieNPoWereD Messages postés 3 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 17 septembre 2008 - 27 oct. 2005 à 16:16
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. Malheureusement la réponse est toujours arrondie. (ex.: 22.75 --> 23).
Comment puis-je avoir une réponse qui n'arrondi pas à l'unité supérieure?
Merci

8 réponses

lolo1683 Messages postés 20 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 24 février 2005
26 mars 2003 à 14:45
Tu peux essayer ça ...
Dim AGE As Double ' pour les decimals
AGE = DateDiff("m", "24-1-1976", Now)' age en Mois
AGE = (AGE / 12)

8-)
0
dehayef Messages postés 3 Date d'inscription lundi 26 août 2002 Statut Membre Dernière intervention 1 décembre 2005
26 mars 2003 à 15:18
De cette manière j'obtiens par exemple 22.75 . Mais je voudrais obtenir 22. Le problème est qu'il passe à 23 si je le mets en integer.
et en utilisant le fonction formatnumber(var,0), il arrondit aussi.
0
pelw Messages postés 148 Date d'inscription dimanche 12 janvier 2003 Statut Membre Dernière intervention 14 février 2005 6
26 mars 2003 à 17:56
Tu peux utiliser la fonction Int(), qui renvoie la partie entière d'un nombre :

Int(22.75) = 22
Int(22.25) = 22

@+

pelw
0
cs_pen Messages postés 5 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 10 avril 2003
3 avril 2003 à 15:45
:) j ai un probleme presque comme le votre si vous vouler m'aider ,j ai besoin de calculer l'age de quelqu'un a partir de sa date naissance qui est saisi dans une base de donner access est que je dois calculer sur l'interface vb
COMMENT FAIRE SVP
MERCI :sad) :kisses)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lolo1683 Messages postés 20 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 24 février 2005
4 avril 2003 à 11:59
Hello, je n'avais pas vu ton mesage sur le forum...
Comme t'a dis je-ne-sais-plus-qui, il faudrait que tu verifies tes formats de date :
Le format renvoyé par acces doit etre le meme que celui de ton poste (parametres regionaux)
S'il ne sont pas identiques tu dois t'aranger pour les mettre au meme format avant de faire le datediff() (hesite pas à demander si tu vois pas comment faire.)
@+
Loïc

8-)
0
mbouhamdi Messages postés 1 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 18 mai 2005
18 mai 2005 à 23:33
Salut tous le monde
Est ce que quelqu'un peut me donner le nom du composant du calendrier pour VB car je dois saisir une date pour l'enregistrer dans une base de données.
Merci d'avance
0
AlieNPoWereD Messages postés 3 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 17 septembre 2008
27 oct. 2005 à 03:30
Salut tlm rép a trouver la date de naissance a partir de la date de naissance...
Jai pas trouver la date mais ici j'évalu si une personne à partir de sa date de naissance a 18 ans ou plus
c pt pas optimiser au max mais comme programeur vous etes capable de rendre moins explicite :)

Private Sub cmdExecuter_Click()
'---CONSTANTES---
Const conErreur As String = "Erreur"
Const conErreurDateDeNaissance As String = "Vouz devez entrer votre date de naissance sous la forme : aaaa-mm-jj."
Const conErreurAge As String = "Vous devez être âgé de plus de 18 pour utiliser le programme."

'---VARIABLES---
Dim strTamponMsgBox As String
Dim dtmDateNaissance As Date
Dim intNbJourDate As Integer
Dim intNbMoisDate As Integer
Dim intNbAnneeDate As Integer
Dim dtmDateNow As Date
Dim intNbJourNow As Integer
Dim intNbMoisNow As Integer
Dim intNbAnneeNow As Integer

'---ENTREE---
intNbJourDate = 0
intNbMoisDate = 0
intNbAnneeDate = 0
dtmDateNow = Date
intNbJourNow = 0
intNbMoisNow = 0
intNbAnneeNow = 0
dtmDateNaissance = CDate(txtDateDeNaissance.Text

'---TRAITEMENT---
'Trouver l'année, le mois et le jour de la date présente
intNbAnneeNow = Mid(dtmDateNow, 1, 4)
intNbMoisNow = Mid(dtmDateNow, 6, 2)
intNbJourNow = Mid(dtmDateNow, 9, 2)

'Trouver l'année, le mois et le jour de la date de naissance
intNbAnneeDate = Mid(txtDateDeNaissance.Text, 1, 4)
intNbMoisDate = Mid(txtDateDeNaissance.Text, 6, 2)
intNbJourDate = Mid(txtDateDeNaissance.Text, 9, 2)


If ((intNbAnneeNow - intNbAnneeDate) >= 18) Then
If (intNbMoisDate > intNbMoisNow) Then
Print " tu a lage ok"
Else
If (intNbMoisDate = intNbMoisNow) Then
If (intNbJourDate >= intNbJourNow) Then
Print "tu a lage ok"
Else
strTamponMsgBox = MsgBox(conErreurAge, vbCritical, conErreur)
End If
End If
End If
End If
Print "Fin"

End Sub

'C'est du beau code c'est propre, ça devrais toujours etre comme ca :)
A+

-[CSF]-AlieN_PoWereD.Style
0
AlieNPoWereD Messages postés 3 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 17 septembre 2008
27 oct. 2005 à 16:16
Il y avais une petite erreur alors... j'ai aranger mes IF.... bonne prog...

Private Sub cmdExecuter_Click()
'---CONSTANTES---
Const conErreur As String = "Erreur"
Const conErreurDateDeNaissance As String = "Vouz devez entrer votre date de naissance sous la forme : aaaa-mm-jj."
Const conErreurAge As String = "Vous devez être âgé de plus de 18 pour utiliser le programme."

'---VARIABLES---
Dim strTamponMsgBox As String
Dim dtmDateNaissance As Date
Dim intNbJourDate As Integer
Dim intNbMoisDate As Integer
Dim intNbAnneeDate As Integer
Dim dtmDateNow As Date
Dim intNbJourNow As Integer
Dim intNbMoisNow As Integer
Dim intNbAnneeNow As Integer

'---ENTREE---
intNbJourDate = 0
intNbMoisDate = 0
intNbAnneeDate = 0
dtmDateNow = Date
intNbJourNow = 0
intNbMoisNow = 0
intNbAnneeNow = 0
dtmDateNaissance = CDate(txtDateDeNaissance.Text

'---TRAITEMENT---
'Trouver l'année, le mois et le jour de la date présente
intNbAnneeNow = Mid(dtmDateNow, 1, 4)
intNbMoisNow = Mid(dtmDateNow, 6, 2)
intNbJourNow = Mid(dtmDateNow, 9, 2)

'Trouver l'année, le mois et le jour de la date de naissance
intNbAnneeDate = Mid(txtDateDeNaissance.Text, 1, 4)
intNbMoisDate = Mid(txtDateDeNaissance.Text, 6, 2)
intNbJourDate = Mid(txtDateDeNaissance.Text, 9, 2)

If ((intNbAnneeNow - intNbAnneeDate) > 18) Then
Print "Tu a l'age"
Else
If Int((intNbAnneeNow - intNbAnneeDate) = 18) Then
If (intNbMoisDate > intNbMoisNow) Then
Print "Tu a l'age"
Else
If (intNbMoisDate = intNbMoisNow) Then
If (intNbJourDate >= intNbJourNow) Then
Print "Tu a l'age"
Else
strTamponMsgBox = MsgBox(conErreurAge, vbCritical, conErreur)
End If

End If
End If
Else
strTamponMsgBox = MsgBox(conErreurAge, vbCritical, conErreur)
End If
End If


End Sub

-[CSF]-AlieN_PoWereD.Style
0
Rejoignez-nous