расчет возраста в Flex - PullRequest
       14

расчет возраста в Flex

1 голос
/ 03 марта 2010

Я пытаюсь подсчитать возраст в флексе. Я нашел этот предыдущий вопрос Каков наилучший способ расчета возраста с помощью Flex?

Я как бы склоняюсь к этому

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

но я не понимаю, что происходит на 100%.

Как мне реализовать этот код в моем коде, если дата была 12/23/1990?

Также Как мне изменить код, чтобы рассчитать возраст, если вместо текущей даты указываются две даты? например. 23.12.1990 - 15.10.1999

Спасибо!

Ответы [ 2 ]

0 голосов
/ 03 марта 2010

Date.getTime () возвращает количество миллисекунд с 1 января 1970 года, поэтому diff - это количество миллисекунд между двумя датами.Код делится на 86400000, потому что это число миллисекунд в день.Остальное должно быть очевидным.

Чтобы изменить функцию, чтобы можно было вводить две даты, вы можете изменить функцию следующим образом:


private function calculateAge(dob:Date, endDate:Date):String {        
   var ageDays:int = 0;
   var ageYears:int = 0;
   var ageRmdr:int = 0;
   var diff:Number = endDate.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";
}
0 голосов
/ 03 марта 2010

Я полагаю, что изменение будет работать следующим образом:

private function calculateAge(dob:Date, startfrom:Date):String {        

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

var diff:Number = startfrom.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"; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...