c# -计算日期是否比现在早六个月

本文关键字:六个月 是否 计算 日期 | 更新日期: 2023-09-27 18:07:13

我试图计算给定的指定日期是否至少六个月前。我正在做这个:

if(DateTime.Now.AddMonths(-6)>date)
{
    //Do something
}

正确吗?

有人说这种方法是错误的,不会给出准确的结果。以上是正确的吗?

c# -计算日期是否比现在早六个月

"6个月"不是一个精确的时间。这取决于月份的长短。特别是,与date.AddMonths(6) < DateTime.Now相比,您的计算可能会得到不同的结果。(考虑一下从8月30日开始增加6个月vs从2月28日开始减少6个月……你可能没事,但你需要仔细考虑一下。

你需要仔细考虑几件事:

  • 您目前正在使用DateTime.Now而不是DateTime.Today;你希望当前的时间如何影响事情?
  • date的"类型"是UTC,未指定还是本地?不幸的是,DateTime令人困惑。
  • 你想如何处理像第一段那样的情况?

最终,如果人们告诉你它不会给出准确的结果,你应该向他们询问具体的例子——你需要获得大量的输入数据和期望的结果,为它们添加自动化测试,并让它们通过。然后,如果有人声称您的代码不能正常工作,您应该能够挑战他们创建另一个失败的测试用例,并证明他们的决定是正确的。

如果您只关心日期而不关心时间,请使用DateTime.Now.Date代替。除此之外,我没有看到您已有的代码有任何问题。