zora - ¿Cuál es la mejor forma de calcular Age using Flex?
zora wow (6)
¿Cuál es la mejor forma de calcular Age using Flex?
Aquí hay un cálculo un poco más complejo, esto calcula la edad en años y meses. Ejemplo: el usuario tiene 3 años y 2 meses de edad.
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";
}
Aquí hay un trazador de líneas:
int( now.getFullYear() - dob.getFullYear() + (now.getMonth() - dob.getMonth())*.01 + (now.getDate() - dob.getDate())*.0001 );
Encontré algunos problemas con la respuesta principal aquí. Usé un par de respuestas aquí para improvisar algo que era preciso (para mí, de todos modos, ¡también espero para ti!)
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;
}
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;
Encontré una respuesta al final de esta página en la sección de comentarios (que ahora está fuera de línea) .
jpwrunyan dijo el 30 de abril de 2007 a las 10:10 PM:
Por cierto, aquí se muestra cómo calcular la edad en años (solo) desde la fecha de nacimiento sin necesidad de tener en cuenta los años bisiestos:
Con una ligera corrección por Fine-Wei Lin , el código dice
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;
}
Esto maneja la mayoría de las situaciones donde necesita calcular la edad.
También podría hacerlo más o menos de la misma manera que aquí : (traducido a AS3)
var age:int = (new Date()).fullYear - bDay.fullYear;
if ((new Date()) < (new Date((bDay.fullYear + age), bDay.month, bDay.date))) age--;