0

Flexを使用して年齢を計算する最良の方法は何ですか?

4

6 に答える 6

12

このページの下部にあるコメントセクション(現在はオフライン)で回答を見つけました。

jpwrunyanは2007年4月30日午後10時10分に言った:

ちなみに、うるう年を考慮する必要なしに、DOBから年齢(のみ)を計算する方法は次のとおりです。

Fine-Wei Linによるわずかな修正により、コードは次のようになります。

private function getYearsOld(dob:Date):uint {  
    var now:Date = new Date();  
    var yearsOld:uint = Number(now.fullYear) - Number(dob.fullYear);  
    if (dob.month > now.month || (dob.month == now.month && dob.date > now.date)) 
    {
       yearsOld--;
    }
    return yearsOld;  
}

これは、年齢を計算する必要があるほとんどの状況を処理します。

于 2008-09-03T14:51:37.710 に答える
3
var userDOB : Date = new Date(year,month-1,day);
var today : Date = new Date();

var diff : Date = new Date();
diff.setTime( today.getTime() - userDOB.getTime() );

var userAge : int = diff.getFullYear() - 1970;
于 2009-02-12T18:10:17.050 に答える
1

私はここでトップアンサーにいくつかの問題を見つけました。私はここでいくつかの答えを使用して、正確なものをまとめました(とにかく、私にとっては、あなたにも期待しています!)

private function getYearsOld(dob:Date):uint
{
    var now:Date = new Date();
    var age:Date = new Date(now.getTime() - dob.getTime());
    var yearsOld:uint = age.getFullYear() - 1970;
    return yearsOld;
}
于 2010-05-07T20:58:49.280 に答える
1

ここで説明したのとほぼ同じようにすることもできます: (AS3 に変換)

var age:int = (new Date()).fullYear - bDay.fullYear;
if ((new Date()) < (new Date((bDay.fullYear + age), bDay.month, bDay.date))) age--;
于 2008-09-04T13:43:05.230 に答える
1

これはもう少し複雑な計算で、年齢を年と月で計算します。例: ユーザーは 3 歳 2 か月です。

private function calculateAge(dob:Date):String {        
    var now:Date = new Date();

    var ageDays:int = 0;
    var ageYears:int = 0;
    var ageRmdr:int = 0;

    var diff:Number = now.getTime()-dob.getTime();
    ageDays = diff / 86400000;
    ageYears = Math.floor(ageDays / 365.24);
    ageRmdr = Math.floor( (ageDays - (ageYears*365.24)) / 30.4375 );

    if ( ageRmdr == 12 ) {
        ageRmdr = 11;
    }

    return ageYears + " years " + ageRmdr + " months";
}
于 2009-02-12T16:25:16.550 に答える
1

ここにワンライナーがあります:

int( now.getFullYear() - dob.getFullYear() + (now.getMonth() - dob.getMonth())*.01 + (now.getDate() - dob.getDate())*.0001 );
于 2009-08-12T23:16:41.137 に答える