[英]C# - calculate if a date is six months older
我試圖計算給定的指定日期是否至少六個月。 我這樣做:
if(DateTime.Now.AddMonths(-6)>date)
{
//Do something
}
這個對嗎?
有人說這種做法是錯誤的,不會給出准確的結果。 以上是正確的嗎?
“6個月”並不是一個精確的時間。 這取決於月份的長短。 特別是,與date.AddMonths(6) < DateTime.Now
相比,您可能會得到與計算不同的結果。 (考慮從8月30日開始增加6個月,而從2月28日開始增加6個月......你可能沒事,但你需要仔細考慮這個問題。)
你需要仔細考慮一些事情:
DateTime.Now
而不是DateTime.Today
; 你希望當前的時間如何影響事物? date
UTC,未指定或本地? 它有所不同 - 遺憾的是 , DateTime
令人困惑 。 最終,如果人們告訴你它不會給出准確的結果,你應該向他們詢問具體的例子 - 你需要獲得豐富的輸入數據和期望的結果,為他們添加自動化測試,並讓他們通過。 然后,如果有人聲稱您的代碼無法正常工作,您應該能夠挑戰他們創建另一個失敗的測試用例,並證明他們的決定是正確的。
如果您只關心日期而不關心時間,請改用DateTime.Now.Date。 除此之外,我沒有看到你已經擁有的代碼有任何問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.