Leggi in inglese

Condividi tramite


DateTime.CompareTo Metodo

Definizione

Confronta il valore di questa istanza con un valore DateTime specificato e indica se l'istanza è precedente, uguale o successiva al valore DateTime specificato.

Overload

CompareTo(DateTime)

Confronta il valore di questa istanza con un valore DateTime specificato e restituisce un intero che indica se l'istanza è precedente, uguale o successiva al valore DateTime specificato.

CompareTo(Object)

Confronta il valore di questa istanza con un oggetto specificato contenente un valore DateTime specificato e restituisce un intero che indica se l'istanza è precedente, uguale o successiva al valore DateTime specificato.

Commenti

I due overload del CompareTo metodo restituiscono un numero firmato che indica il valore relativo di questa istanza e l'argomento value , come illustrato nella tabella seguente.

Valore Descrizione
Minore di zero Questa istanza è precedente al parametro value.
Zero Questa istanza è uguale al parametro value.
Maggiore di zero Questa istanza è successiva al parametro value.

CompareTo(DateTime)

Origine:
DateTime.cs
Origine:
DateTime.cs
Origine:
DateTime.cs

Confronta il valore di questa istanza con un valore DateTime specificato e restituisce un intero che indica se l'istanza è precedente, uguale o successiva al valore DateTime specificato.

C#
public int CompareTo(DateTime value);

Parametri

value
DateTime

Oggetto da confrontare con l'istanza corrente della classe.

Restituisce

Numero con segno che indica i valori relativi di questa istanza e il parametro value.

Valore Descrizione
Minore di zero Questa istanza è precedente al parametro value.
Zero Questa istanza è uguale al parametro value.
Maggiore di zero Questa istanza è successiva al parametro value.

Implementazioni

Esempio

Nell'esempio seguente vengono creati tre DateTime oggetti, uno che rappresenta la data di oggi, un altro che rappresenta la data un anno in precedenza e un terzo che rappresenta la data un anno in futuro. Chiama quindi il metodo e visualizza il CompareTo(DateTime) risultato del confronto.

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

Commenti

Per determinare la relazione dell'istanza corrente a value, il CompareTo metodo confronta la Ticks proprietà dell'istanza corrente e value ignora la proprietà Kind . Prima di confrontare DateTime gli oggetti, assicurarsi che gli oggetti rappresentino gli orari nello stesso fuso orario. È possibile eseguire questa operazione confrontando i valori delle relative Kind proprietà.

Questo metodo implementa l'interfaccia ed esegue leggermente meglio dell'overload System.IComparable<T> del DateTime.CompareTo(Object) metodo perché non deve convertire il value parametro in un oggetto.

Vedi anche

Si applica a

.NET 10 e altre versioni
Prodotto Versioni
.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)

Origine:
DateTime.cs
Origine:
DateTime.cs
Origine:
DateTime.cs

Confronta il valore di questa istanza con un oggetto specificato contenente un valore DateTime specificato e restituisce un intero che indica se l'istanza è precedente, uguale o successiva al valore DateTime specificato.

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

Parametri

value
Object

Oggetto boxed da confrontare o null.

Restituisce

Numero con segno che indica i valori relativi di questa istanza e di value.

Valore Descrizione
Minore di zero Questa istanza è precedente al parametro value.
Zero Questa istanza è uguale al parametro value.
Maggiore di zero Questa istanza è successiva al parametro value oppure value è null.

Implementazioni

Eccezioni

value non è un oggetto DateTime.

Esempio

Nell'esempio seguente viene illustrato il CompareTo metodo.

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

Commenti

Per determinare la relazione dell'istanza corrente a value, il CompareTo metodo confronta la Ticks proprietà dell'istanza corrente e value ignora la proprietà Kind . Prima di confrontare DateTime gli oggetti, assicurarsi che gli oggetti rappresentino gli orari nello stesso fuso orario. È possibile eseguire questa operazione confrontando i valori delle relative Kind proprietà.

Qualsiasi istanza di DateTime, indipendentemente dal relativo valore, viene considerata maggiore di null.

Vedi anche

Si applica a

.NET 10 e altre versioni
Prodotto Versioni
.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