Was ist der beste Weg, Alter mit Flex zu berechnen?Was ist der beste Weg, Alter mit Flex zu berechnen?
Antwort
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.
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--;
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";
}
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;
Hier ist ein Einzeiler:
int(now.getFullYear() - dob.getFullYear() + (now.getMonth() - dob.getMonth())*.01 + (now.getDate() - dob.getDate())*.0001);
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;
}