2015-10-05 36 views
1

我想,以確定是否一年使用下面的代碼通過:.NET日期時間差異 - 有一年過去了

bool HasYearPassed 
{ 
    get 
    { 
     var inception = InceptionDate.Value; // DateTime Value from UI 
     var expiration = ExpirationDate.Value; // DateTime Value from UI 
     TimeSpan difference = expiration - inception; 
     return difference.Days > 365; 
    } 
} 

然而,在某些情況下我得到不正確的答案。具體而言,如果起始日期爲2014年1月1日,並且到期日期爲2015年1月1日,差異天數將返回365,但未通過測試,儘管一年已過。任何改善邏輯的建議?

謝謝!

+0

什麼是「一年過去了」的定義是什麼?什麼是閏年? –

+1

爲什麼然後'> 365'而不是'> = 365'? – rbm

+2

閏年是當然的問題。你的財產獲得者沒有意義,差異總是一年。當start.AddYears(1)> = now時它已經過期。 –

回答

7

不關心閏年A液:

DateTime inception = InceptionDate.Value; 
DateTime expiration = ExpirationDate.Value; 
return expiration.Date.AddYears(-1) >= inception.Date;