DateTime.CompareTo Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
CompareTo(DateTime) |
Compara el valor de esta instancia con un valor de DateTime especificado y devuelve un entero que indica si esta instancia es anterior, igual o posterior al valor de DateTime especificado. |
CompareTo(Object) |
Compara el valor de esta instancia con un objeto especificado que contiene un valor de DateTime especificado y devuelve un entero que indica si esta instancia es anterior, igual o posterior al valor de DateTime especificado. |
Comentarios
Las dos sobrecargas del CompareTo método devuelven un número firmado que indica el valor relativo de esta instancia y el value
argumento, como se muestra en la tabla siguiente.
Valor | Descripción |
---|---|
Menor que cero | Esta instancia es anterior a value . |
Cero | Esta instancia es la misma que value . |
Mayor que cero | Esta instancia es posterior a value . |
CompareTo(DateTime)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- 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
Objeto que se va a comparar con la actual instancia.
Devoluciones
Número con signo que indica los valores relativos de esta instancia y del parámetro value
.
Valor | Descripción |
---|---|
Menor que cero | Esta instancia es anterior a value .
|
Cero | Esta instancia es la misma que value .
|
Mayor que cero | Esta instancia es posterior a value .
|
Implementaciones
Ejemplos
En el ejemplo siguiente se crean instancias de tres DateTime objetos, uno que representa la fecha de hoy, otra que representa la fecha de un año anteriormente y una tercera que representa la fecha de un año en el futuro. A continuación, llama al CompareTo(DateTime) método y muestra el resultado de la comparació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
Comentarios
Para determinar la relación de la instancia actual con value
, el CompareTo método compara la Ticks propiedad de la instancia actual y value
omite su Kind propiedad. Antes de DateTime comparar objetos, asegúrese de que los objetos representan horas en la misma zona horaria. Para ello, compare los valores de sus Kind propiedades.
Este método implementa la System.IComparable<T> interfaz y funciona ligeramente mejor que la sobrecarga del DateTime.CompareTo(Object) método porque no tiene que convertir el value
parámetro en un objeto.
Consulte también
Se aplica a
CompareTo(Object)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- 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
Objeto al que se ha aplicado la conversión boxing y que se va a comparar o null
.
Devoluciones
Número con signo que indica los valores relativos de esta instancia y value
.
Valor | Descripción |
---|---|
Menor que cero | Esta instancia es anterior a value .
|
Cero | Esta instancia es la misma que value .
|
Mayor que cero | Esta instancia es posterior a value o bien value es null .
|
Implementaciones
Excepciones
value
no es un DateTime.
Ejemplos
En el siguiente ejemplo se muestra el CompareTo método.
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
Comentarios
Para determinar la relación de la instancia actual con value
, el CompareTo método compara la Ticks propiedad de la instancia actual y value
omite su Kind propiedad. Antes de DateTime comparar objetos, asegúrese de que los objetos representan horas en la misma zona horaria. Para ello, compare los valores de sus Kind propiedades.
Cualquier instancia de DateTime, independientemente de su valor, se considera mayor que null
.