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ż, takie same jak, czy nowsze niż określona DateTime wartość.

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ż, takie same jak, czy nowsze niż określona DateTime wartość.

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ż, takie same jak lub nowsze niż określona DateTime wartość.

Uwagi

Dwa przeciążenia CompareTo metody zwracają cyfrę ze znakiem, która wskazuje względną wartość tego wystąpienia i argumentu value , jak pokazano w poniższej tabeli.

Wartość Opis
Mniej niż zero To wystąpienie jest wcześniejsze niż value.
Zero To wystąpienie jest takie samo jak value.
Większe od zera To wystąpienie jest późniejsze niż 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ż, takie same jak, czy nowsze niż określona DateTime wartość.

C#
public int CompareTo (DateTime value);

Parametry

value
DateTime

Obiekt do porównania z bieżącym wystąpieniem.

Zwraca

Int32

Liczba ze znakiem wskazująca względne wartości tego wystąpienia i parametru value .

Wartość Opis
Mniej niż zero To wystąpienie jest wcześniejsze niż value.
Zero To wystąpienie jest takie samo jak value.
Większe od zera To wystąpienie jest późniejsze niż value.

Implementuje

Przykłady

Poniższy przykład tworzy wystąpienie trzech DateTime obiektów, jeden, który reprezentuje bieżącą datę, drugą, która reprezentuje datę jeden rok wcześniej, a trzecią, która reprezentuje datę jeden rok w przyszłości. Następnie wywołuje metodę CompareTo(DateTime) i wyświetla wynik porównania.

C#
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

Uwagi

Aby określić relację bieżącego wystąpienia valuez metodą , CompareTo metoda porównuje Ticks właściwość bieżącego wystąpienia i value ignoruje ich Kind właściwość. Przed porównaniem DateTime obiektów upewnij się, że obiekty reprezentują czasy w tej samej strefie czasowej. Można to zrobić, porównując wartości ich Kind właściwości.

Ta metoda implementuje System.IComparable<T> interfejs i działa nieco lepiej niż DateTime.CompareTo(Object) przeciążenie metody, ponieważ nie musi konwertować parametru value na obiekt.

Zobacz też

Dotyczy

.NET 7 i inne wersje
Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

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ż, takie same jak lub nowsze niż określona DateTime wartość.

C#
public int CompareTo (object? value);
C#
public int CompareTo (object value);

Parametry

value
Object

Obiekt skrzynkowy do porównania lub null.

Zwraca

Int32

Liczba ze znakiem wskazująca względne wartości tego wystąpienia i value.

Wartość Opis
Mniej niż zero To wystąpienie jest wcześniejsze niż value.
Zero To wystąpienie jest takie samo jak value.
Większe od zera To wystąpienie jest późniejsze niż value, lub value ma nullwartość .

Implementuje

Wyjątki

valuenie jest .DateTime

Przykłady

W poniższym przykładzie pokazano metodę CompareTo .

C#
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);

Uwagi

Aby określić relację bieżącego wystąpienia valuez metodą , CompareTo metoda porównuje Ticks właściwość bieżącego wystąpienia i value ignoruje ich Kind właściwość. Przed porównaniem DateTime obiektów upewnij się, że obiekty reprezentują czasy w tej samej strefie czasowej. Można to zrobić, porównując wartości ich Kind właściwości.

Każde wystąpienie klasy DateTime, niezależnie od jego wartości, jest uznawane za większe niż null.

Zobacz też

Dotyczy

.NET 7 i inne wersje
Produkt Wersje
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1