DateTime.CompareTo Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
CompareTo(DateTime) |
Compare la valeur de cette instance à une valeur DateTime spécifiée et retourne un entier qui indique si cette instance est antérieure, identique ou ultérieure à la valeur DateTime spécifiée. |
CompareTo(Object) |
Compare la valeur de cette instance à un objet spécifié qui contient une valeur DateTime spécifiée, et retourne un entier qui indique si cette instance est antérieure, identique ou ultérieure à la valeur DateTime spécifiée. |
Remarques
Les deux surcharges de la CompareTo méthode retournent un nombre signé qui indique la valeur relative de cette instance et l’argument value
, comme indiqué dans le tableau suivant.
Valeur | Description |
---|---|
Inférieure à zéro | Cette instance est antérieure à value . |
Zéro | Cette instance est la même que value . |
Supérieure à zéro | Cette instance est ultérieure à 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
Paramètres
- value
- DateTime
Objet à comparer avec l'instance actuelle.
Retours
Nombre signé indiquant les valeurs relatives de cette instance et du paramètre value
.
Valeur | Description |
---|---|
Inférieure à zéro | Cette instance est antérieure à value .
|
Zéro | Cette instance est la même que value .
|
Supérieure à zéro | Cette instance est ultérieure à value .
|
Implémente
Exemples
L’exemple suivant instancie trois DateTime objets, un qui représente la date d’aujourd’hui, un autre qui représente la date d’un an auparavant et un troisième qui représente la date d’un an dans le futur. Il appelle ensuite la CompareTo(DateTime) méthode et affiche le résultat de la comparaison.
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
Remarques
Pour déterminer la relation de l’instance actuelle à value
, la CompareTo méthode compare la Ticks propriété de l’instance actuelle et value
ignore sa Kind propriété. Avant de comparer des DateTime objets, assurez-vous que les objets représentent des heures dans le même fuseau horaire. Pour ce faire, comparez les valeurs de leurs Kind propriétés.
Cette méthode implémente l’interface System.IComparable<T> et fonctionne légèrement mieux que la surcharge de méthode DateTime.CompareTo(Object) , car elle n’a pas besoin de convertir le value
paramètre en objet.
Voir aussi
S’applique à
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
Paramètres
- value
- Object
Objet boxed à comparer ou null
.
Retours
Nombre signé indiquant les valeurs relatives de cette instance et value
.
Valeur | Description |
---|---|
Inférieure à zéro | Cette instance est antérieure à value .
|
Zéro | Cette instance est la même que value .
|
Supérieure à zéro | Cette instance est ultérieure à value ou value est null .
|
Implémente
Exceptions
value
n’est pas un DateTime.
Exemples
L’exemple suivant illustre la CompareTo méthode.
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
Remarques
Pour déterminer la relation de l’instance actuelle à value
, la CompareTo méthode compare la Ticks propriété de l’instance actuelle et value
ignore sa Kind propriété. Avant de comparer des DateTime objets, assurez-vous que les objets représentent des heures dans le même fuseau horaire. Pour ce faire, comparez les valeurs de leurs Kind propriétés.
Toute instance de DateTime, quelle que soit sa valeur, est considérée comme supérieure à null
.