我正在尝试计算给定的指定日期是否至少六个月。我这样做:
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/