2歳から4歳の数字に変換するときに、1年の年齢をキャプチャする方法に関するヒントはありますか?手動入力を求めずに?
私が思う問題は、特に100歳のために発生します。
例えば。 DDMMYYをキャプチャした場合:04/08/18この人は100歳である可能性があります(例:04/08/2018または04/08/1918)。ユーザー入力を要求せずにこれを操作するために実装できるロジックはありますか?
Jaroslav Mの優れた答え は重要なアイデアを提供します。2桁の年の特定の範囲は(ほぼ例外なく)4桁まで拡張しても安全です。一部は「おそらく19xx」です。一部は「おそらく20xx」です。 no手動入力を目指すべきではないと思いますが、その概念を念頭に置くと、それを最小限に抑えることができるはずです。
19
...99
–想定19xx
実際のユーザーの場合、19
と99
の間に誕生年が記録されている人は誰でも20歳で生まれたと考えるのが安全です。番目 世紀。低い値19
、mustは1919
を意味します(人が100になったにもかかわらず)(2018年にまだ(執筆時点で)いるため)。上の値は99
、must平均1999
(= 19歳) Emma Morano 以来、1899年に生まれた最後の人(知られている)が亡くなりました2017年に。
00
...09
–想定20xx
00
と09
の間に誕生年が記録されている人は誰でも21歳で生まれたと考えるのはかなり安全ですst 世紀(したがって、19歳から10歳までです)。 19xx
が119から109までの年齢を意味すると仮定します。後者はpossibleになる可能性がありますが、ほとんどありません1。
10
...18
–想定19xx
レコードがあることを知らない限り(for子供(若いユーザーとは対照的))、誕生年が10
と18
の間に記録されている人は誰でも、 20年生まれ番目 世紀(したがって、109歳から101歳までです)。 20xx
が9歳から1歳までの年齢を意味すると仮定すると、実際のユーザーにはありそうにありません。
allユーザーの場合、おそらく(おそらくStackExchangeが現在表示している行動規範のようなもの)に沿って通知を表示する必要があります次の行:
レコードを更新しています。記録された生年月日はdd/mm/yyでしたが、これはdd/mm /を意味すると想定していますyyyyzz歳にします。これが正しくない場合は、[ここをクリック]してください。
(年齢を含めることはおそらく役に立ちますが、一部の人々がそれを見ることに敏感であると思われる場合は、それを削除することができます!)
doレコードがある場合for子供(または10歳未満のユーザー)の場合、記録されている特定の誕生年(おそらく05
から15
)まで19xx
(114歳から104歳まで)または20xx
(14歳から4歳まで)のどちらを使用するかをユーザーに明示的に確認することを検討する場合があります。
同様に、歴史的な記録(つまり、死亡した可能性のある人々)がある場合は、同様の質問をすることをお勧めします(ただし、その場合はreallyは4桁の年を使用しているはずです)最初から)。
1この最古の住人のリスト は、最古の100人を示し、110歳に達した住人は150人から600人と推定されています。これは、長寿の点から見た印象的な数字ですが-視野の中で、彼らがあなたのアプリケーションを使用する可能性はおそらくリモートです。
これはすでに開発されていますか? '00から'18の間に誕生年を持っているユーザーの数に関するデータはありますか?ユーザーのDoBをキャプチャしている場合、ユーザーは通常10〜15歳(子供向けのWebサイトでない限り)であるため、これはあまり一般的ではないので、次のようなユーザーは使用しないでください。 DoB 2008-2018 ...そのため、このような値は1908-1918を意味する可能性がありますが、100-110歳である人はそれほど多くありませんandコンピューターを使用しています。
一方、DoBが「00-'08」と入力されたユーザーがいて、110〜118よりも10〜18歳のユーザーがいる可能性が高いため、DoBが2000〜2008であると想定しても安全です。歳...
まだ開発されていない場合は、あいまいさをなくすために、通年をYYYYとしてキャプチャすることをお勧めします。また、フォーマット04/08/18は、出身地に応じて少なくとも3つの異なる方法で解釈できるため、あいまいです。
Sidenote:たとえば、医療記録を処理し、患者のDoBを取得している場合、小さな子供と非常に高齢者の両方が記録に表示される可能性があるため、このアドバイスは適用されません。しかし、そのような場合、通年をキャプチャすることがさらに重要です...