Ler en inglés

Compartir por


DateTime.CompareTo Método

Definición

Compara el valor de esta instancia con un valor de DateTime especificado e indica si esta instancia es anterior, igual o posterior al valor de DateTime especificado.

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

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.

C#
public int CompareTo(DateTime value);

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.

C#
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

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

.NET 10 e outras versións
Produto Versións
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

CompareTo(Object)

Source:
DateTime.cs
Source:
DateTime.cs
Source:
DateTime.cs

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.

C#
public int CompareTo(object? value);
C#
public int CompareTo(object value);

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.

C#
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);

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.

Consulte también

Se aplica a

.NET 10 e outras versións
Produto Versións
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1