在 asp.net 中比较 StartDate 和 EndDate 时的混乱
在我的 asp.net 应用程序中比较 StartDate 和 EndDate 时,我有点困惑。
EndDate: 10/1/2011
StartDate: 9/30/2011
下面的 if 语句根据上面的日期值返回 true。
如果 strEndDate < strStartDate 那么
我认为 If 语句应该返回 false。这个概念应该是,如果 EndDate 早于 StartDate,则显示错误消息。
I am a bit confused when comparing StartDate and EndDate in my asp.net app.
EndDate: 10/1/2011
StartDate: 9/30/2011
The if statement below returns true, based on the date values above.
If strEndDate < strStartDate Then
I would think the If statement shoudl return false. The concept is supposed to be that if EndDate is earlier than StartDate, display an error message.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我假设由于您的变量名为
strEndDate
和strStartDate
,因此它们是字符串,而不是DateTime
。因为它们是字符串,并且因为 '1' < '9'(字符串中的第一个字符),strEndDate
确实“小于”strStartDate
。在比较之前将值转换为
DateTime
:I'm assuming that since your variables are called
strEndDate
andstrStartDate
that they're strings, notDateTime
s. Since they're strings, and since '1' < '9' (the first characters in the strings),strEndDate
is indeed "less than"strStartDate
.Convert the values to
DateTime
before comparing:如果这些是 DateTime 变量,则该代码的计算结果应为 true。如果不是,您应该将它们转换为 DateTime。
您还可以像这样比较它们:
正如 Rick Schott 指出的,您还可以使用
DateTime.Compare
If those are DateTime variables, that code should evaluate to true. If not, you should convert them to DateTime.
You can also compare them like this:
As Rick Schott pointed out, you can also use
DateTime.Compare
您应该使用
DateTime.Compare
。You should be using
DateTime.Compare
.不要将它们作为字符串进行比较,而将它们作为日期进行比较。
Don't compare them as strings, compare them as dates.