C# - 计算日期是否早于六个月

标签 c#

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

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 is confusing , 不幸的是。
  • 您想如何处理第一段中的情况?

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

关于C# - 计算日期是否早于六个月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7241682/

相关文章:

c# - 如何使用 Entity Framework 6 访问中间件中的数据库

c# - 倒序堆叠数组

c# - DDD "View Objects"?

c# - 在代码隐藏中访问 DataContext

c# - 使 ORMLite 对结构使用适当的序列化

c# - 遍历控件并使用函数

c# - 在 FlowLayoutPanel 上删除动态添加的标签

c# - mysql 函数的正确语法

c# - 从 Angular 2 到 ASP.NET ApiController 的 Http.post

c# - 在C#中将类作为参数传递,然后想要访问类的属性