DateTime.CompareTo Método

Definição

Compara o valor desta instância com um valor especificado DateTime e indica se esta instância é anterior, igual ou posterior ao valor especificado DateTime .

Sobrecargas

Name Description
CompareTo(DateTime)

Compara o valor desta instância com um valor especificado DateTime e devolve um inteiro que indica se esta instância é anterior, igual ou posterior ao valor especificado DateTime .

CompareTo(Object)

Compara o valor desta instância com um objeto especificado que contém um valor especificado DateTime e devolve um inteiro que indica se esta instância é anterior, igual ou posterior ao valor especificado DateTime .

Observações

As duas sobrecargas do CompareTo método retornam um número assinado que indica o valor relativo desta instância e do value argumento, conforme mostrado na tabela seguinte.

valor Description
Menor que zero Esta instância é anterior a value.
Zero Esta instância é igual a value.
Maior que zero Esta instância é posterior a value.

CompareTo(DateTime)

Compara o valor desta instância com um valor especificado DateTime e devolve um inteiro que indica se esta instância é anterior, igual ou posterior ao valor especificado DateTime .

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

Parâmetros

value
DateTime

O objeto a comparar com a instância atual.

Devoluções

Um número assinado que indica os valores relativos desta instância e do value parâmetro.

Valor Descrição
Menos que zero Esta instância é anterior a value.
Zero Esta instância é igual a value.
Maior que zero Esta instância é posterior a value.

Implementações

Exemplos

O exemplo seguinte instancia três DateTime objetos, um que representa a data de hoje, outro que representa a data de um ano antes e um terceiro que representa a data um ano no futuro. Depois chama o CompareTo(DateTime) método e apresenta o resultado da comparação.

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

Observações

Para determinar a relação da instância atual com value, o CompareTo método compara a Ticks propriedade da instância atual e value , mas ignora a sua Kind propriedade. Antes de comparar DateTime objetos, certifique-se de que os objetos representam horários no mesmo fuso horário. Pode fazê-lo comparando os valores das suas Kind propriedades.

Este método implementa a System.IComparable<T> interface e tem um desempenho ligeiramente melhor do que a DateTime.CompareTo(Object) sobrecarga do método porque não precisa de converter o value parâmetro num objeto.

Ver também

Aplica-se a

CompareTo(Object)

Compara o valor desta instância com um objeto especificado que contém um valor especificado DateTime e devolve um inteiro que indica se esta instância é anterior, igual ou posterior ao valor especificado DateTime .

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

Parâmetros

value
Object

Um objeto em caixa para comparar, ou null.

Devoluções

Um número assinado que indica os valores relativos desta instância e value.

Valor Descrição
Menos que zero Esta instância é anterior a value.
Zero Esta instância é igual a value.
Maior que zero Esta instância é posterior a value, ou value é null.

Implementações

Exceções

value não é um DateTime.

Exemplos

O exemplo seguinte demonstra o CompareTo método.

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

Observações

Para determinar a relação da instância atual com value, o CompareTo método compara a Ticks propriedade da instância atual e value , mas ignora a sua Kind propriedade. Antes de comparar DateTime objetos, certifique-se de que os objetos representam horários no mesmo fuso horário. Pode fazê-lo comparando os valores das suas Kind propriedades.

Qualquer instância de DateTime, independentemente do seu valor, é considerada maior que null.

Ver também

Aplica-se a