我试图计算给定的指定日期是否至少六个月.我这样做:
if(DateTime.Now.AddMonths(-6)>date)
{
//Do something
}
Run Code Online (Sandbox Code Playgroud)
它是否正确?
有人说这种做法是错误的,不会给出准确的结果.以上是正确的吗?
Jon*_*eet 10
"6个月"并不是一个精确的时间.这取决于月份的长短.特别是,与计算结果相比,您可能会得到不同的计算结果date.AddMonths(6) < DateTime.Now.(考虑从8月30日开始增加6个月,而从2月28日开始增加6个月......你可能没事,但你需要仔细考虑这个问题.)
你需要仔细考虑一些事情:
DateTime.Now而不是DateTime.Today; 你希望当前的时间如何影响事物?dateUTC 的"种类" ,未指定或本地?这有所不同 - 遗憾的DateTime是令人困惑.最终,如果人们告诉你它不会给出准确的结果,你应该向他们询问具体的例子 - 你需要获得丰富的输入数据和期望的结果,为他们添加自动化测试,并让他们通过.那么,如果有人声称你的代码无法正常工作,你应该能够激励他们创造出另一个失败的测试案例,并证明他们的决定.