如何比较C#中的DateTime?
我不希望用户给出返回date或时间。
如何比较input的date和时间是否是当前时间?
如果当前date和时间是2010年6月17日下午12:25,我希望用户不能在2010年6月17日之前和下午12点25分之前给出date。
像我的函数返回false如果用户input的时间是2010年6月16日和12:24 PM
MSDN: DateTime.Compare
DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0); DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0); int result = DateTime.Compare(date1, date2); string relationship; if (result < 0) relationship = "is earlier than"; else if (result == 0) relationship = "is the same time as"; else relationship = "is later than"; Console.WriteLine("{0} {1} {2}", date1, relationship, date2); // The example displays the following output: // 8/1/2009 12:00:00 AM is earlier than 8/1/2009 12:00:00 PM
微软还实施了运营商的<'和'>'。 所以你用这些来比较两个date。
if (date1 < DateTime.Now) Console.WriteLine("Less than the current time!");
MuSTaNG的回答说明了这一切,但我仍然把它加上来,使其更加详细一点,连接和所有。
传统的运营商
- 大于 (
>
) , - 小于 (
<
) , - 平等 (
==
) , - 等等
从.NET Framework 1.1开始可用于DateTime
。 而且,使用传统的运算符+
和-
还可以加减DateTime
对象。
来自MSDN的一个例子:
平等:
System.DateTime april19 = new DateTime(2001, 4, 19); System.DateTime otherDate = new DateTime(1991, 6, 5); // areEqual gets false. bool areEqual = april19 == otherDate; otherDate = new DateTime(2001, 4, 19); // areEqual gets true. areEqual = april19 == otherDate;
其他操作符也可以使用。
这里列出了所有可用于DateTime
运算符 。
//Datetime compare. private int CompareTime(string t1, string t2) { TimeSpan s1 = TimeSpan.Parse(t1); TimeSpan s2 = TimeSpan.Parse(t2); return s2.CompareTo(s1); }