DateTime.CompareTo Metoda

Definicja

Porównuje wartość tego wystąpienia z określoną DateTime wartością i wskazuje, czy to wystąpienie jest wcześniejsze niż, tak samo jak w przypadku określonej wartości DateTime lub nowszej.Compares the value of this instance to a specified DateTime value and indicates whether this instance is earlier than, the same as, or later than the specified DateTime value.

Przeciążenia

CompareTo(DateTime)

Porównuje wartość tego wystąpienia z określoną DateTime wartością i zwraca liczbę całkowitą, która wskazuje, czy to wystąpienie jest wcześniejsze niż określona wartość DateTime lub nowsza.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.

CompareTo(Object)

Porównuje wartość tego wystąpienia z określonym obiektem, który zawiera określoną DateTime wartość i zwraca liczbę całkowitą, która wskazuje, czy to wystąpienie jest wcześniejsze niż określona wartość DateTime lub późniejsza.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.

Uwagi

Dwa przeciążenia metody CompareTo zwracają podpisany numer, który wskazuje wartość względną tego wystąpienia i argument value, jak pokazano w poniższej tabeli.The two overloads of the CompareTo method return a signed number that indicates the relative value of this instance and the value argument, as shown in the following table.

WartośćValue OpisDescription
Mniej niż zeroLess than zero To wystąpienie jest wcześniejsze niż value.This instance is earlier than value.
ZeroZero To wystąpienie jest takie samo jak value.This instance is the same as value.
Większe od zeraGreater than zero To wystąpienie jest późniejsze niż value.This instance is later than value.

CompareTo(DateTime)

Porównuje wartość tego wystąpienia z określoną DateTime wartością i zwraca liczbę całkowitą, która wskazuje, czy to wystąpienie jest wcześniejsze niż określona wartość DateTime lub nowsza.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.

public:
 virtual int CompareTo(DateTime value);
public int CompareTo (DateTime value);
abstract member CompareTo : DateTime -> int
override this.CompareTo : DateTime -> int
Public Function CompareTo (value As DateTime) As Integer

Parametry

value
DateTime

Obiekt do porównania z bieżącym wystąpieniem.The object to compare to the current instance.

Zwraca

Liczba ze znakiem wskazująca wartości względne tego wystąpienia i parametr value.A signed number indicating the relative values of this instance and the value parameter.

WartośćValue OpisDescription
Mniej niż zeroLess than zero To wystąpienie jest wcześniejsze niż value.This instance is earlier than value.
ZeroZero To wystąpienie jest takie samo jak value.This instance is the same as value.
Większe od zeraGreater than zero To wystąpienie jest późniejsze niż value.This instance is later than value.

Implementuje

Przykłady

Poniższy przykład tworzy wystąpienie trzech DateTime obiektów, które reprezentują dzisiejszą datę, drugą, która reprezentuje datę rok i trzeci, która reprezentuje datę rok w przyszłości.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. Następnie wywołuje metodę CompareTo(DateTime) i wyświetla wynik porównania.It then calls the CompareTo(DateTime) method and displays the result of the comparison.

using System;

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

   public static void Main()
   {
      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);
      Console.WriteLine("CompareTo method returns {0}: {1:d} is {2} than {3:d}", 
                        (int) comparison, thisDate, comparison.ToString().ToLower(), 
                        thisDateLastYear);
      
      // Compare today to next year
      comparison = (DateComparisonResult) thisDate.CompareTo(thisDateNextYear);
      Console.WriteLine("CompareTo method returns {0}: {1:d} is {2} than {3:d}", 
                        (int) comparison, thisDate, comparison.ToString().ToLower(), 
                        thisDateNextYear);
   }
}
//
// 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
Option Strict On

Module DateTimeComparison
   Private Enum DateComparisonResult
      Earlier = -1
      Later = 1
      TheSame = 0
   End Enum
   
   Public Sub Main()

      Dim thisDate As Date = Date.Today

      ' Define two DateTime objects for today's date 
      ' next year and last year		
      Dim thisDateNextYear, thisDateLastYear As Date

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

       
      ' Compare dates
      '
      Dim comparison As DateComparisonResult
      ' Compare today to last year
      comparison = CType(thisDate.CompareTo(thisDateLastYear), DateComparisonResult)
      Console.WriteLine("CompareTo method returns {0}: {1:d} is {2} than {3:d}", _ 
                        CInt(comparison), thisDate, comparison.ToString().ToLower(), _ 
                        thisDateLastYear)
      
      ' Compare today to next year
      comparison = CType(thisDate.CompareTo(thisDateNextYear), DateComparisonResult)
      Console.WriteLine("CompareTo method returns {0}: {1:d} is {2} than {3:d}", _
                        CInt(comparison), thisDate, comparison.ToString().ToLower(), _
                        thisDateNextYear)
   End Sub
End Module
'
' 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

Uwagi

Aby określić relację bieżącego wystąpienia do value, Metoda CompareTo porównuje Właściwość Ticks bieżącego wystąpienia i value, ale ignoruje ich Właściwość Kind.To determine the relationship of the current instance to value, the CompareTo method compares the Ticks property of the current instance and value but ignores their Kind property. Przed porównaniem obiektów DateTime upewnij się, że obiekty reprezentują czasy w tej samej strefie czasowej.Before comparing DateTime objects, make sure that the objects represent times in the same time zone. Można to zrobić, porównując wartości Kind właściwości.You can do this by comparing the values of their Kind properties.

Ta metoda implementuje interfejs System.IComparable<T> i wykonuje nieco lepsze niż Przeciążenie metody DateTime.CompareTo(Object), ponieważ nie musi on konwertować parametru value na obiekt.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.

Zobacz też

CompareTo(Object)

Porównuje wartość tego wystąpienia z określonym obiektem, który zawiera określoną DateTime wartość i zwraca liczbę całkowitą, która wskazuje, czy to wystąpienie jest wcześniejsze niż określona wartość DateTime lub późniejsza.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.

public:
 int CompareTo(System::Object ^ value);
public:
 virtual int CompareTo(System::Object ^ value);
public int CompareTo (object value);
member this.CompareTo : obj -> int
abstract member CompareTo : obj -> int
override this.CompareTo : obj -> int
Public Function CompareTo (value As Object) As Integer

Parametry

value
Object

Obiekt opakowany do porównania lub null.A boxed object to compare, or null.

Zwraca

Liczba ze znakiem wskazująca wartości względne tego wystąpienia i value.A signed number indicating the relative values of this instance and value.

WartośćValue OpisDescription
Mniej niż zeroLess than zero To wystąpienie jest wcześniejsze niż value.This instance is earlier than value.
ZeroZero To wystąpienie jest takie samo jak value.This instance is the same as value.
Większe od zeraGreater than zero To wystąpienie jest późniejsze niż valuelub value jest null.This instance is later than value, or value is null.

Implementuje

Wyjątki

value nie jest DateTime.value is not a DateTime.

Przykłady

Poniższy przykład demonstruje metodę CompareTo.The following example demonstrates the CompareTo method.

using namespace System;
void main()
{
   

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

   if ( compareValue < 0 )
   {
      System::Console::WriteLine( "{0:d} is in the past.", theDay );
   }
   else
   if ( compareValue == 0 )
   {
      System::Console::WriteLine( "{0:d} is today!", theDay );
   }
   else
   // compareValue > 0 
   {
      System::Console::WriteLine( "{0:d} has not come yet.", theDay );
   }
}
System.DateTime theDay = new System.DateTime(System.DateTime.Today.Year, 7, 28);
int compareValue;

try 
{
    compareValue = theDay.CompareTo(DateTime.Today);
} 
catch (ArgumentException) 
{
   Console.WriteLine("Value is not a DateTime");
   return;
}

if (compareValue < 0) 
   System.Console.WriteLine("{0:d} is in the past.", theDay);
else if (compareValue == 0) 
   System.Console.WriteLine("{0:d} is today!", theDay);
else // compareValue > 0
   System.Console.WriteLine("{0:d} has not come yet.", theDay);
Dim thDay As New System.DateTime(System.DateTime.Today.Year, 7, 28)

Dim compareValue As Integer
Try
   compareValue = thDay.CompareTo(System.DateTime.Today)
Catch exp As ArgumentException
   System.Console.WriteLine("Value is not a DateTime")
End Try

If compareValue < 0 Then
   System.Console.WriteLine("{0:d} is in the past.", thDay)
ElseIf compareValue = 0 Then
   System.Console.WriteLine("{0:d} is today!", thDay)
Else   ' compareValue >= 1 
   System.Console.WriteLine("{0:d} has not come yet.", thDay)
End If

Uwagi

Aby określić relację bieżącego wystąpienia do value, Metoda CompareTo porównuje Właściwość Ticks bieżącego wystąpienia i value, ale ignoruje ich Właściwość Kind.To determine the relationship of the current instance to value, the CompareTo method compares the Ticks property of the current instance and value but ignores their Kind property. Przed porównaniem obiektów DateTime upewnij się, że obiekty reprezentują czasy w tej samej strefie czasowej.Before comparing DateTime objects, make sure that the objects represent times in the same time zone. Można to zrobić, porównując wartości Kind właściwości.You can do this by comparing the values of their Kind properties.

Każde wystąpienie DateTime, niezależnie od jego wartości, jest traktowane jako większe niż null.Any instance of DateTime, regardless of its value, is considered greater than null.

Zobacz też

Dotyczy