2012-01-16 106 views
1

我试图根据财年结束时获得年龄。 如果我的出生日期是1962年1月16日,我现在的年龄是50岁(假设今天的日期是2012年1月16日)。我可以使用什么javascript公式/函数来计算当前财政年度末(即2012年6月30日)的年龄?基于出生日期的EOFY年龄

这是我必须得到现在的年龄:

function getAge(dateString) { 
    var today = new Date(); 
    var birthDate = new Date(dateString); 
    var age = today.getFullYear() - birthDate.getFullYear(); 
    var m = today.getMonth() - birthDate.getMonth(); 

    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) { 
     age--; 
    } 

    alert("current age "+age) 
} 

回答

0

你会使用当前财政年度结束的“今天”的日期,对吧?然后,当前财政年度的结束将被硬编码到该功能中,或者以编程方式计算出来。

0

你只需要计算两个日期之间的差值:

function ageAtEOFY(birthDate) { 
    var eofy = new Date("2012-06-30"); 
    var msDiff = eofy - new Date(birthDate); 
    return Math.floor(msDiff/1000/60/60/24/365.25); 
} 

像这样来使用:

ageAtEOFY("1962-01-16"); // 50 
ageAtEOFY("1984-11-14"); // 27 

这种工作方式是eofy - new Date(birthDate)为您提供毫秒为单位的两个日期之间的差异。剩下的就是将这个价值转化为几年。

请注意,这里有一点巧合:闰年don't simply occur every four years

相关问题