DateTime.CompareTo Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| CompareTo(DateTime) |
Compara o valor dessa instância com um valor especificado DateTime e retorna um inteiro que indica se essa instância é anterior, igual ou posterior ao valor especificado DateTime . |
| CompareTo(Object) |
Compara o valor dessa instância com um objeto especificado que contém um valor especificado DateTime e retorna um inteiro que indica se essa instância é anterior, igual ou posterior ao valor especificado DateTime . |
Comentários
As duas sobrecargas do CompareTo método retornam um número assinado que indica o valor relativo dessa instância e o value argumento, conforme mostrado na tabela a seguir.
| Valor | Descrição |
|---|---|
| Menor que zero | Essa instância é anterior a value. |
| Zero | Essa instância é a mesma que value. |
| Maior que zero | Essa instância é posterior a value. |
CompareTo(DateTime)
- Origem:
- DateTime.cs
- Origem:
- DateTime.cs
- Origem:
- DateTime.cs
- Origem:
- DateTime.cs
- Origem:
- DateTime.cs
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 ser comparado com a instância atual.
Retornos
Um número assinado que indica os valores relativos dessa instância e o value parâmetro.
| Valor | Descrição |
|---|---|
| Menor que zero | Essa instância é anterior a value.
|
| Zero | Essa instância é a mesma que value.
|
| Maior que zero | Essa instância é posterior a value.
|
Implementações
Exemplos
O exemplo a seguir cria uma instância de três DateTime objetos, um que representa a data de hoje, outro que representa a data um ano antes e um terceiro que representa a data de um ano no futuro. Em seguida, ele chama o CompareTo(DateTime) método e exibe 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
Comentários
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 ignora sua Kind propriedade. Antes de DateTime comparar objetos, verifique se os objetos representam tempos no mesmo fuso horário. Você pode fazer isso comparando os valores de suas Kind propriedades.
Esse método implementa a System.IComparable<T> interface e executa um pouco melhor do que a sobrecarga do DateTime.CompareTo(Object) método porque não precisa converter o value parâmetro em um objeto.
Confira também
Aplica-se a
CompareTo(Object)
- Origem:
- DateTime.cs
- Origem:
- DateTime.cs
- Origem:
- DateTime.cs
- Origem:
- DateTime.cs
- Origem:
- DateTime.cs
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
Parâmetros
- value
- Object
Um objeto em caixa a ser comparado ou null.
Retornos
Um número assinado que indica os valores relativos dessa instância e value.
| Valor | Descrição |
|---|---|
| Menor que zero | Essa instância é anterior a value.
|
| Zero | Essa instância é a mesma que value.
|
| Maior que zero | Essa instância é posterior valuea , ou value é null.
|
Implementações
Exceções
value não é um DateTime.
Exemplos
O exemplo a seguir 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
Comentários
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 ignora sua Kind propriedade. Antes de DateTime comparar objetos, verifique se os objetos representam tempos no mesmo fuso horário. Você pode fazer isso comparando os valores de suas Kind propriedades.
Qualquer instância de DateTime, independentemente de seu valor, é considerada maior que null.