DateTime::CompareTo Method (Object)

Compares the value of this instance to a specified object that contains 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)

virtual int CompareTo(
	Object^ value
) sealed


Type: System::Object

A boxed object to compare, or nullptr.

Return Value

Type: System::Int32
A signed number indicating the relative values of this instance and value.



Less than zero

This instance is earlier than value.


This instance is the same as value.

Greater than zero

This instance is later than value, or value is nullptr.




value is not a DateTime.

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.

Any instance of DateTime, regardless of its value, is considered greater than nullptr.

The following example demonstrates the CompareTo method.

using namespace System;
void main()

   System::DateTime theDay(System::DateTime::Today.Year,7,28);
   int compareValue;
      compareValue = theDay.CompareTo( System::DateTime::Today );
   catch ( ArgumentException^ ) 
      System::Console::WriteLine( "Value is not a DateTime" );

   if ( compareValue < 0 )
      System::Console::WriteLine( "{0:d} is in the past.", theDay );
   if ( compareValue == 0 )
      System::Console::WriteLine( "{0:d} is today!", theDay );
   // compareValue > 0 
      System::Console::WriteLine( "{0:d} has not come yet.", theDay );

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft