如何比较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); }