DateTime.CompareTo Metod

Definition

Jämför värdet för den här instansen med ett angivet DateTime värde och anger om den här instansen är tidigare än, samma som eller senare än det angivna DateTime värdet.

Överlagringar

Name Description
CompareTo(DateTime)

Jämför värdet för den här instansen med ett angivet DateTime värde och returnerar ett heltal som anger om den här instansen är tidigare än, samma som eller senare än det angivna DateTime värdet.

CompareTo(Object)

Jämför värdet för den här instansen med ett angivet objekt som innehåller ett angivet DateTime värde och returnerar ett heltal som anger om den här instansen är tidigare än, samma som eller senare än det angivna DateTime värdet.

Kommentarer

De två överlagringarna av CompareTo metoden returnerar ett signerat tal som anger det relativa värdet för den här instansen value och argumentet, enligt följande tabell.

Value Description
Mindre än noll Den här instansen är tidigare än value.
Noll Den här instansen är samma som value.
Större än noll Den här instansen är senare än value.

CompareTo(DateTime)

Jämför värdet för den här instansen med ett angivet DateTime värde och returnerar ett heltal som anger om den här instansen är tidigare än, samma som eller senare än det angivna DateTime värdet.

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

Parametrar

value
DateTime

Objektet som ska jämföras med den aktuella instansen.

Returer

Ett signerat tal som anger de relativa värdena för den här instansen och parametern value .

Värde Beskrivning
Mindre än noll Den här instansen är tidigare än value.
Noll Den här instansen är samma som value.
Större än noll Den här instansen är senare än value.

Implementeringar

Exempel

I följande exempel instansieras tre DateTime objekt, ett som representerar dagens datum, ett annat som representerar datumet ett år tidigare och ett tredje som representerar datumet ett år i framtiden. Den anropar CompareTo(DateTime) sedan metoden och visar resultatet av jämförelsen.

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

Kommentarer

För att fastställa relationen för den aktuella instansen till valuejämför metoden egenskapen för den aktuella instansen Ticks och value ignorerar deras KindCompareTo egenskap. Innan du DateTime jämför objekt måste du se till att objekten representerar tider i samma tidszon. Du kan göra detta genom att jämföra värdena för deras Kind egenskaper.

Den här metoden implementerar System.IComparable<T> gränssnittet och presterar något bättre än DateTime.CompareTo(Object) metodens överlagring eftersom den inte behöver konvertera parametern value till ett objekt.

Se även

Gäller för

CompareTo(Object)

Jämför värdet för den här instansen med ett angivet objekt som innehåller ett angivet DateTime värde och returnerar ett heltal som anger om den här instansen är tidigare än, samma som eller senare än det angivna DateTime värdet.

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

Parametrar

value
Object

Ett rutat objekt att jämföra, eller null.

Returer

Ett signerat tal som anger de relativa värdena för den här instansen och value.

Värde Beskrivning
Mindre än noll Den här instansen är tidigare än value.
Noll Den här instansen är samma som value.
Större än noll Den här instansen är senare än value, eller value är null.

Implementeringar

Undantag

value är inte en DateTime.

Exempel

I följande exempel visas CompareTo metoden.

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

Kommentarer

För att fastställa relationen för den aktuella instansen till valuejämför metoden egenskapen för den aktuella instansen Ticks och value ignorerar deras KindCompareTo egenskap. Innan du DateTime jämför objekt måste du se till att objekten representerar tider i samma tidszon. Du kan göra detta genom att jämföra värdena för deras Kind egenskaper.

Alla instanser av DateTime, oavsett dess värde, anses vara större än null.

Se även

Gäller för