2008-09-03 9 views

Antwort

12

Ich fand eine Antwort bei the bottom of this page in comments section (which is now offline).

jpwrunyan sagte am 30. April 2007 um 10:10 Uhr:

By the way, hier ist, wie Alter in Jahren (nur) von DOB zu berechnen, ohne Sprung zu berücksichtigen brauchen Jahre:

Mit einer leichten Korrektur durch Fine-Wei Lin liest der Code

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; 
} 

Dieser verarbeitet die meisten Situationen, in denen Sie Alter berechnen müssen.

1

Man könnte es auch tun ungefähr die gleichen wie diskutiert here: (übersetzt AS3)

var age:int = (new Date()).fullYear - bDay.fullYear; 
if ((new Date()) < (new Date((bDay.fullYear + age), bDay.month, bDay.date))) age--; 
1

Hier ist eine wenig komplexe Berechnung, berechnet das Alter in Jahren und Monaten. Beispiel: Benutzer ist 3 Jahre 2 Monate alt.

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"; 
} 
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; 
1

Hier ist ein Einzeiler:

int(now.getFullYear() - dob.getFullYear() + (now.getMonth() - dob.getMonth())*.01 + (now.getDate() - dob.getDate())*.0001); 
1

ich hier ein paar Probleme mit der Top-Antwort gefunden. Ich benutzte ein paar Antworten hier, um etwas zusammen zu basteln, was genau war (für mich jedenfalls, hoffe auch für Sie!)

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; 
} 
Verwandte Themen