DateTimeOffset.Compare(DateTimeOffset, DateTimeOffset) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Сравнивает два объекта DateTimeOffset, и указывает, как соотносятся между собой указанные в них моменты времени: первый раньше второго, первый и второй равны, или же первый позже второго.
public:
static int Compare(DateTimeOffset first, DateTimeOffset second);
public static int Compare (DateTimeOffset first, DateTimeOffset second);
static member Compare : DateTimeOffset * DateTimeOffset -> int
Public Shared Function Compare (first As DateTimeOffset, second As DateTimeOffset) As Integer
Параметры
- first
- DateTimeOffset
Первый из сравниваемых объектов.
- second
- DateTimeOffset
Второй из сравниваемых объектов.
Возвращаемое значение
Знаковое целое число, позволяющее определить, наступает ли момент, указанный в параметре first
, раньше или одновременно с моментом, указанным в параметре second
, как показано в следующей таблице.
Возвращаемое значение | Значение |
---|---|
Меньше нуля | Момент, указанный в параметре first , наступает раньше, чем момент, указанный в параметре second .
|
Нуль | first равно second .
|
Больше нуля | Момент, указанный в параметре first , наступает позже, чем момент, указанный в параметре second .
|
Примеры
В следующем примере показаны вызовы Compare метода для сравнения DateTimeOffset объектов.
using System;
public class CompareTimes
{
private enum TimeComparison
{
Earlier = -1,
Same = 0,
Later = 1
};
public static void Main()
{
DateTimeOffset firstTime = new DateTimeOffset(2007, 9, 1, 6, 45, 0,
new TimeSpan(-7, 0, 0));
DateTimeOffset secondTime = firstTime;
Console.WriteLine("Comparing {0} and {1}: {2}",
firstTime, secondTime,
(TimeComparison) DateTimeOffset.Compare(firstTime, secondTime));
secondTime = new DateTimeOffset(2007, 9, 1, 6, 45, 0,
new TimeSpan(-6, 0, 0));
Console.WriteLine("Comparing {0} and {1}: {2}",
firstTime, secondTime,
(TimeComparison) DateTimeOffset.Compare(firstTime, secondTime));
secondTime = new DateTimeOffset(2007, 9, 1, 8, 45, 0,
new TimeSpan(-5, 0, 0));
Console.WriteLine("Comparing {0} and {1}: {2}",
firstTime, secondTime,
(TimeComparison) DateTimeOffset.Compare(firstTime, secondTime));
// The example displays the following output to the console:
// Comparing 9/1/2007 6:45:00 AM -07:00 and 9/1/2007 6:45:00 AM -07:00: Same
// Comparing 9/1/2007 6:45:00 AM -07:00 and 9/1/2007 6:45:00 AM -06:00: Later
// Comparing 9/1/2007 6:45:00 AM -07:00 and 9/1/2007 8:45:00 AM -05:00: Same
}
}
open System
type TimeComparison =
| Earlier = -1
| Same = 0
| Later = 1
let firstTime = DateTimeOffset(2007, 9, 1, 6, 45, 0, TimeSpan(-7, 0, 0))
let secondTime = firstTime
printfn $"Comparing {firstTime} and {secondTime}: {DateTimeOffset.Compare(firstTime, secondTime) |> enum<TimeComparison>}"
let thirdTime = DateTimeOffset(2007, 9, 1, 6, 45, 0, TimeSpan(-6, 0, 0))
printfn $"Comparing {firstTime} and {thirdTime}: {DateTimeOffset.Compare(firstTime, thirdTime) |> enum<TimeComparison>}"
let fourthTime = DateTimeOffset(2007, 9, 1, 8, 45, 0, TimeSpan(-5, 0, 0))
printfn $"Comparing {firstTime} and {fourthTime}: {DateTimeOffset.Compare(firstTime, fourthTime) |> enum<TimeComparison>}"
// The example displays the following output to the console:
// Comparing 9/1/2007 6:45:00 AM -07:00 and 9/1/2007 6:45:00 AM -07:00: Same
// Comparing 9/1/2007 6:45:00 AM -07:00 and 9/1/2007 6:45:00 AM -06:00: Later
// Comparing 9/1/2007 6:45:00 AM -07:00 and 9/1/2007 8:45:00 AM -05:00: Same
Module CompareTimes
Private Enum TimeComparison As Integer
Earlier = -1
Same = 0
Later = 1
End Enum
Public Sub Main()
Dim firstTime As New DateTimeOffset(#09/01/2007 6:45:00AM#, _
New TimeSpan(-7, 0, 0))
Dim secondTime As DateTimeOffset = firstTime
Console.WriteLine("Comparing {0} and {1}: {2}", _
firstTime, secondTime, _
CType(DateTimeOffset.Compare(firstTime, secondTime), _
TimeComparison))
secondTime = New DateTimeOffset(#09/01/2007 6:45:00AM#, _
New TimeSpan(-6, 0, 0))
Console.WriteLine("Comparing {0} and {1}: {2}", _
firstTime, secondTime, _
CType(DateTimeOffset.Compare(firstTime, secondTime), _
TimeComparison))
secondTime = New DateTimeOffset(#09/01/2007 8:45:00AM#, _
New TimeSpan(-5, 0, 0))
Console.WriteLine("Comparing {0} and {1}: {2}", _
firstTime, secondTime, _
CType(DateTimeOffset.Compare(firstTime, secondTime), _
TimeComparison))
' The example displays the following output to the console:
' Comparing 9/1/2007 6:45:00 AM -07:00 and 9/1/2007 6:45:00 AM -07:00: Same
' Comparing 9/1/2007 6:45:00 AM -07:00 and 9/1/2007 6:45:00 AM -06:00: Later
' Comparing 9/1/2007 6:45:00 AM -07:00 and 9/1/2007 8:45:00 AM -05:00: Same
End Sub
End Module
Комментарии
При выполнении сравнения метод преобразует как параметры, так first
и second
параметры в время в формате UTC перед выполнением сравнения. Этот метод эквивалентен следующему:
return DateTime.Compare(first.UtcDateTime, second.UtcDateTime);
DateTime.Compare(first.UtcDateTime, second.UtcDateTime)
Return DateTime.Compare(first.UtcDateTime, second.UtcDateTime)
Другими словами, метод определяет, Compare представляют ли два DateTimeOffset объекта одну точку во времени. Он напрямую не сравнивает ни даты, ни время, ни смещения.