2012-01-16 142 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

相關問題