2010-04-02 27 views

回答

0

你可以提供一些測試情況下,這裏的一個嘗試,沒有測試很實在:

def months_between d1, d2 
    d1, d2 = d2, d1 if d1 > d2 
    (d2.year - d1.year)*12 + d2.month - d1.month - (d2.day >= d1.day ? 0 : 1) 
end 
0

這解決月份邊緣的情況下(即2009年3月15日 - 2010年1月12日)

def months_between(d1, d2) 
    d1, d2 = d2, d1 if d1 > d2 
    y, m, d = (d2.year - d1.year), (d2.month - d1.month), (d2.day - d1.day) 
    m=m-1 if d < 0 
    y, m = (y-1), (m+12) if m < 0 
    y*12 + m 
end