EOFY年龄基于出生日期

时间:2012-01-16 19:05:44

标签: javascript

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

这是我必须得到当前年龄:

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

2 个答案:

答案 0 :(得分:0)

您可以将当前财政年度的结尾用作“今天”日期,对吗?然后,当前财政年度的结束将被硬编码到函数中,或者以编程方式计算出来。

答案 1 :(得分: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