Des conseils sur la façon de capturer un âge d'une année complète lors de la conversion de deux ans à un chiffre de quatre ans? Sans demander de saisie manuelle?
Je pense que le problème se pose spécifiquement pour un âge de 100 ans.
Par exemple. si nous capturions DDMMYY: 04/08/18, cette personne pourrait avoir 100 ans, par exemple 04/08/2018 ou 04/08/1918. Y a-t-il une logique que nous pouvons implémenter pour manipuler cela sans demander d'entrée utilisateur?
l'excellente réponse de Jaroslav M donne l'idée clé: certaines plages d'années à deux chiffres sont (presque exclusivement) sûres pour s'étendre à quatre chiffres; certains sont "probablement 19xx"; certains sont "probablement 20xx". Je ne pense pas que vous devriez viser non saisie manuelle, mais avec ce concept à l'esprit, vous devriez être en mesure de le réduire au minimum.
19
...99
- Présumer 19xx
Pour les utilisateurs réels, il est prudent de supposer que toute personne ayant une année de naissance enregistrée entre 19
et 99
est né le 20e siècle. La valeur inférieure, 19
, doit signifie 1919
(bien que la personne ait maintenant 100 ans) puisque nous sommes toujours (au moment de la rédaction) en 2018. La valeur supérieure, 99
, doit signifie 1999
(= 19 ans) depuis Emma Morano , la dernière personne (connue pour être) née en 1899, décédée en 2017.
00
...09
- Présumer 20xx
Il devrait être assez sûr de supposer que toute personne ayant une année de naissance enregistrée entre 00
et 09
est né le 21st siècle (et sont donc âgés de 19 à 10 ans). En supposant 19xx
impliquerait des âges compris entre 119 et 109 ans: ce dernier pourrait être possible, mais est très peu probable 1 .
10
...18
- Présumer 19xx
Sauf si vous savez que vous avez des enregistrements pour enfants (par opposition aux jeunes utilisateurs), alors il est assez sûr de supposer que toute personne ayant une année de naissance enregistrée entre 10
et 18
est né le 20e siècle (et sont donc âgés de 109 à 101 ans). En supposant 20xx
impliquerait des âges compris entre 9 et 1: peu probable pour les vrais utilisateurs.
Pour tous les utilisateurs , vous devriez probablement afficher une notification (peut-être quelque chose comme le Code de conduite que StackExchange affiche actuellement) le long des lignes de:
Nous mettons à jour nos dossiers. Votre date de naissance enregistrée était jj/mm/aa que nous avons supposé moyenne jj/mm/aaaa vous faisant zz ans. Veuillez [Cliquez ici] si cela est incorrect.
(Y compris l'âge est probablement utile, mais vous pouvez le supprimer si vous pensez que certaines personnes pourraient être sensibles à le voir!)
Si vous faites avez des enregistrements pour enfants (ou utilisateurs de moins de 10 ans), alors pour certaines années de naissance enregistrées (peut-être 05
à 15
), vous pourriez envisager de demander explicitement à l'utilisateur de confirmer s'il faut utiliser 19xx
(114 à 104 ans) ou 20xx
(de 14 à 4 ans).
De même, si vous avez des dossiers historiques (c.-à-d. De personnes qui peuvent être décédées), vous voudrez peut-être poser une question similaire (bien que si tel était le cas, vous vraiment auriez dû utiliser 4- chiffres à partir du début).
1 Cette liste des personnes les plus âgées montre les 100 personnes les plus âgées et note qu'il y a entre 150 et 600 personnes qui ont atteint l'âge de 110 ans. Bien que ce soit un nombre impressionnant du point de vue de la longévité- de vue, les chances que l'un d'entre eux utilise votre application est probablement faible.
est-ce déjà développé? Avez-vous des données sur le nombre d'utilisateurs ayant l'année de naissance entre '00 et '18? Si vous capturez le DoB de vos utilisateurs, je suppose que ce n'est pas très courant, car vos utilisateurs auraient généralement au moins 10-15 ans (sauf s'il s'agit d'un site Web pour enfants), vous ne devriez donc pas avoir d'utilisateurs avec DoB 2008-2018 ... Ces valeurs peuvent donc signifier 1908-1918, mais, encore une fois, peu de gens ont entre 100 et 110 ans et utilisent des ordinateurs.
D'un autre côté, vous pouvez avoir des utilisateurs avec DoB entré comme '00 - '08, et il est sûr de supposer que leur DoB est 2000 - 2008, car il est plus probable que vous ayez des utilisateurs âgés de 10 à 18 ans que 110 - 118 ans...
S'il n'est pas encore développé, je vous conseille de capturer l'année entière en AAAA afin de vous débarrasser de l'ambiguïté. De plus, le format 04/08/18 est extrêmement ambigu car il peut être interprété d'au moins trois manières différentes selon d'où vous venez ....
Sidenote: Si vous traitez des dossiers médicaux et saisissez le DoB de patients, par exemple, les enfants en bas âge et les personnes très âgées peuvent apparaître dans les dossiers, donc ce conseil ne s'appliquerait pas. Mais dans ce cas, il est encore plus important de capturer l'année entière ...