Bonjour,
Juste pour info, dans une base de données avec ACCESS je calcul les âges des adhérents dans une requête Mise à jour avec cette formule: (Date()-[TABLE TOUTES INFOS ELEVES]![Date naissance])/"365,25"
Ce n'est pas très loin de l'âge réel....;-)
Avec cette question j'aurai appris des choses et c'est bien là l'intérêt...

Claude Fricard

Le 07/02/2013 11:04, christianwtd a écrit :
Le 05/02/2013 11:11, Claude FRICARD a écrit :

Claude

Le 05/02/2013 09:04, pierre-yves samyn a écrit :
Bonjour


fricard Claude wrote
La requête telle que je l'ai définie DATEDIFF( 'year', "date de
naissance".... donne bien le résultat escompté à savoir l'âge. (c'est
d'ailleurs le code dans l'exemple fourni calcâge.png) .
Il me semble qu'une personne née le 14/03/2007 n'aura 6 ans que...
le 14/03/07 ?

Or DATEDIFF telle que tu l'emploies (et c'est pour illustrer cela
que j'ai repris cette syntaxe dans la copie d'écran) donne 6 et non 5
c'est ce qui résulte aussi de l'exécution de l'exemple que tu as transmis :
http://nabble.documentfoundation.org/file/n4034400/CalcAge.png
le gamin qui est de mars 2007 a déjà 6 ans ...et même celui qui est d'Aout. C'est le résultat que j'obtiens également. Quant à la copie d'écran



Bonjour,

Désolé d'intervenir dans ce fil, mais je pense que certains d'entre vous font fausse route dans les calculs d'ages. Avec Calc ça avait fait l'objet de longues discussions. Je ne connais pas suffisamment Base pour dire ce qu'il faut faire, mais je peux donner les indications avec le tableur. Il suffit (!) d'adapter à la suite.
Bien que le site soit inactif, les infos sont toujours valables:
http://christianwtd.free.fr/index.php?rubrique=DebFonctions02
dans la rubrique : Attention au piège (2), j'écrivais :
Le calcul d'âge (année, mois, jour) est une source fréquente d'erreur. On a tendance à soustraire la date actuelle à la date de naissance, puis si nécessaire d'afficher au format Jour / Mois / Année. Cette méthode n'est que très approximative et fausse. Démonstration. Une personne est née le 25 janvier 1930 (soit la valeur numérique 10983). Si nous sommes le 15 septembre 2010 (soit la valeur numérique 40436). Avec une simple soustraction, nous obtenons 80 ans 8 mois et 20 jours. En fait nous appliquons une valeur numérique (résultat de soustraction), 29453 dans ce cas précis, qui correspond à la date du 20/08/1980.

En espérant aider un peu,
Bon surf,
Christian





--
Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés

Répondre à