Sdílet prostřednictvím


DateTime.CompareTo Metoda

Definice

Porovná hodnotu této instance se zadanou DateTime hodnotou a určuje, zda je tato instance starší než, stejná jako nebo novější než zadaná DateTime hodnota.

Přetížení

CompareTo(DateTime)

Porovná hodnotu této instance se zadanou DateTime hodnotou a vrátí celé číslo, které označuje, zda je tato instance starší než, stejná jako nebo novější než zadaná DateTime hodnota.

CompareTo(Object)

Porovná hodnotu této instance se zadaným objektem, který obsahuje zadanou DateTime hodnotu, a vrátí celé číslo, které označuje, zda je tato instance starší než, stejná jako nebo novější než zadaná DateTime hodnota.

Poznámky

Dvě přetížení CompareTo metody vrátí podepsané číslo, které označuje relativní hodnotu této instance a value argumentu, jak je znázorněno v následující tabulce.

Hodnota Popis
Menší než nula Tato instance je starší než value.
Žádnou Tato instance je stejná jako value.
Větší než nula Tato instance je novější než value.

CompareTo(DateTime)

Zdroj:
DateTime.cs
Zdroj:
DateTime.cs
Zdroj:
DateTime.cs

Porovná hodnotu této instance se zadanou DateTime hodnotou a vrátí celé číslo, které označuje, zda je tato instance starší než, stejná jako nebo novější než zadaná DateTime hodnota.

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

Objekt, který chcete porovnat s aktuální instancí.

Návraty

Podepsané číslo označující relativní hodnoty této instance a parametru value .

Hodnota Popis
Menší než nula Tato instance je starší než value.
Žádnou Tato instance je stejná jako value.
Větší než nula Tato instance je novější než value.

Implementuje

Příklady

Následující příklad vytvoří instanci tří DateTime objektů, jeden, který představuje dnešní datum, druhý, který představuje datum o jeden rok dříve, a třetí, který představuje datum jednoho roku v budoucnosti. Potom zavolá metodu CompareTo(DateTime) a zobrazí výsledek porovnání.

open System

type DateComparisonResult =
    | Earlier = -1
    | Later = 1
    | TheSame = 0

[<EntryPoint>]
let main _ =
    let thisDate = DateTime.Today

    // Define two DateTime objects for today's date next year and last year		
    // Call AddYears instance method to add/substract 1 year
    let thisDateNextYear = thisDate.AddYears 1
    let thisDateLastYear = thisDate.AddYears -1

    // Compare today to last year
    let comparison = thisDate.CompareTo thisDateLastYear |> enum<DateComparisonResult>
    printfn $"CompareTo method returns {int comparison}: {thisDate:d} is {comparison.ToString().ToLower()} than {thisDateLastYear:d}"

    // Compare today to next year
    let comparison = thisDate.CompareTo thisDateNextYear |> enum<DateComparisonResult>
    printfn $"CompareTo method returns {int comparison}: {thisDate:d} is {comparison.ToString().ToLower()} than {thisDateNextYear:d}"
                        
    0

// If run on December 31, 2021, the example produces the following output:
//    CompareTo method returns 1: 12/31/2021 is later than 12/31/2020
//    CompareTo method returns -1: 12/31/2021 is earlier than 12/31/2022
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

Poznámky

Chcete-li zjistit vztah aktuální instance k value, metoda porovnává Ticks vlastnost aktuální instance, ale value ignoruje jejich Kind vlastnost.CompareTo Před porovnáním DateTime objektů se ujistěte, že objekty představují časy ve stejném časovém pásmu. Můžete to udělat porovnáním hodnot jejich Kind vlastností.

Tato metoda implementuje System.IComparable<T> rozhraní a funguje o něco lépe než DateTime.CompareTo(Object) přetížení metody, protože nemusí převést value parametr na objekt.

Viz také

Platí pro

CompareTo(Object)

Zdroj:
DateTime.cs
Zdroj:
DateTime.cs
Zdroj:
DateTime.cs

Porovná hodnotu této instance se zadaným objektem, který obsahuje zadanou DateTime hodnotu, a vrátí celé číslo, které označuje, zda je tato instance starší než, stejná jako nebo novější než zadaná DateTime hodnota.

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

Parametry

value
Object

Objekt v rámečku, který chcete porovnat, nebo null.

Návraty

Podepsané číslo označující relativní hodnoty této instance a value.

Hodnota Popis
Menší než nula Tato instance je starší než value.
Žádnou Tato instance je stejná jako value.
Větší než nula Tato instance je novější než value, nebo value je null.

Implementuje

Výjimky

Příklady

Následující příklad ukazuje metodu CompareTo .

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 );
   }
}
open System

let theDay = DateTime(DateTime.Today.Year, 7, 28)

try
    let compareValue = theDay.CompareTo DateTime.Today

    if compareValue < 0 then
        printfn $"{theDay:d} is in the past."
    elif compareValue = 0 then
        printfn $"{theDay:d} is today!"
    else // compareValue > 0
        printfn $"{theDay:d} has not come yet."
        
with :? ArgumentException ->
    Console.WriteLine("Value is not a DateTime");
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

Poznámky

Chcete-li zjistit vztah aktuální instance k value, metoda porovnává Ticks vlastnost aktuální instance, ale value ignoruje jejich Kind vlastnost.CompareTo Před porovnáním DateTime objektů se ujistěte, že objekty představují časy ve stejném časovém pásmu. Můžete to udělat porovnáním hodnot jejich Kind vlastností.

Jakákoli instance objektu DateTimebez ohledu na jeho hodnotu je považována za větší než null.

Viz také

Platí pro