簡體   English   中英

C# - 計算日期是否超過六個月

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM