DateTime.CompareTo Method (DateTime)

July 28, 2014

Compares the value of this instance to a specified DateTime value and returns an integer that indicates whether this instance is earlier than, the same as, or later than the specified DateTime value.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public int CompareTo(
	DateTime value
)

Parameters

value
Type: System.DateTime
The object to compare to this instance.

Return Value

Type: System.Int32
A signed integer that indicates the relationship between this instance and the value parameter, as shown in the following table.

Value

Description

Less than zero

This instance is earlier than value.

Zero

This instance is the same as value.

Greater than zero

This instance is later than value.

Implements

IComparable<T>.CompareTo(T)

This method implements the System.IComparable<T> interface and performs slightly better than the DateTime.CompareTo(Object) method overload because it does not have to convert the value parameter to an object.

Before comparing DateTime objects, make sure that the objects represent times in the same time zone. You can do this by comparing the values of their Kind properties.

The following example instantiates three DateTime objects, one that represents today's date, another that represents the date one year previously, and a third that represents the date one year in the future. It then calls the CompareTo(DateTime) method and displays the result of the comparison.


using System;

public class Example
{
   private enum DateComparisonResult
   {
      Earlier = -1,
      Later = 1,
      TheSame = 0
   };

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      DateTime thisDate = DateTime.Today;


      // Define two DateTime objects for today's date 
      // next year and last year		
      DateTime thisDateNextYear, thisDateLastYear;

      // Call AddYears instance method to add/substract 1 year
      thisDateNextYear = thisDate.AddYears(1);
      thisDateLastYear = thisDate.AddYears(-1);

      // Compare dates
      //
      DateComparisonResult comparison;
      // Compare today to last year
      comparison = (DateComparisonResult)thisDate.CompareTo(thisDateLastYear);
      outputBlock.Text += String.Format("CompareTo method returns {0}: {1:d} is {2} than {3:d}",
                        (int)comparison, thisDate, comparison.ToString().ToLower(),
                        thisDateLastYear) + "\n";

      // Compare today to next year
      comparison = (DateComparisonResult)thisDate.CompareTo(thisDateNextYear);
      outputBlock.Text += String.Format("CompareTo method returns {0}: {1:d} is {2} than {3:d}",
                        (int)comparison, thisDate, comparison.ToString().ToLower(),
                        thisDateNextYear) + "\n";
   }
}
//
// If run on October 20, 2006, the example produces the following output:
//    CompareTo method returns 1: 10/20/2006 is later than 10/20/2005
//    CompareTo method returns -1: 10/20/2006 is earlier than 10/20/2007


Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Show:
© 2014 Microsoft