DateTimeOffset.Subtract Метод

Определение

Вычитает указанное время или длительность из текущего объекта DateTimeOffset.

Перегрузки

Subtract(DateTimeOffset)

Вычитает значение DateTimeOffset, представляющее определенную дату и время, из текущего объекта DateTimeOffset.

Subtract(TimeSpan)

Вычитает указанный интервал времени из текущего объекта DateTimeOffset.

Subtract(DateTimeOffset)

Вычитает значение DateTimeOffset, представляющее определенную дату и время, из текущего объекта DateTimeOffset.

public:
 TimeSpan Subtract(DateTimeOffset value);
public TimeSpan Subtract (DateTimeOffset value);
member this.Subtract : DateTimeOffset -> TimeSpan
Public Function Subtract (value As DateTimeOffset) As TimeSpan

Параметры

value
DateTimeOffset

Объект, представляющий вычитаемое значение.

Возвращаемое значение

TimeSpan

Объект, задающий интервал между двумя объектами DateTimeOffset.

Примеры

В следующем примере показано вычитание, использующее Subtract(DateTimeOffset) метод.

DateTimeOffset firstDate = new DateTimeOffset(2018, 10, 25, 18, 0, 0,
                                              new TimeSpan(-7, 0, 0));
DateTimeOffset secondDate = new DateTimeOffset(2018, 10, 25, 18, 0, 0,
                                               new TimeSpan(-5, 0, 0));
DateTimeOffset thirdDate = new DateTimeOffset(2018, 9, 28, 9, 0, 0,
                                              new TimeSpan(-7, 0, 0));
TimeSpan difference;

difference = firstDate.Subtract(secondDate);
Console.WriteLine($"({firstDate}) - ({secondDate}): {difference.Days} days, {difference.Hours}:{difference.Minutes:d2}");

difference = firstDate.Subtract(thirdDate);
Console.WriteLine($"({firstDate}) - ({thirdDate}): {difference.Days} days, {difference.Hours}:{difference.Minutes:d2}");

// The example produces the following output:
//    (10/25/2018 6:00:00 PM -07:00) - (10/25/2018 6:00:00 PM -05:00): 0 days, 2:00
//    (10/25/2018 6:00:00 PM -07:00) - (9/28/2018 9:00:00 AM -07:00): 27 days, 9:00
let firstDate = DateTimeOffset(2018, 10, 25, 18, 0, 0, TimeSpan(-7, 0, 0))
let secondDate = DateTimeOffset(2018, 10, 25, 18, 0, 0, TimeSpan(-5, 0, 0))
let thirdDate = DateTimeOffset(2018, 9, 28, 9, 0, 0, TimeSpan(-7, 0, 0))

let difference = firstDate.Subtract secondDate
printfn $"({firstDate}) - ({secondDate}): {difference.Days} days, {difference.Hours}:{difference.Minutes:d2}"

let difference = firstDate.Subtract thirdDate
printfn $"({firstDate}) - ({thirdDate}): {difference.Days} days, {difference.Hours}:{difference.Minutes:d2}"

// The example produces the following output:
//    (10/25/2018 6:00:00 PM -07:00) - (10/25/2018 6:00:00 PM -05:00): 0 days, 2:00
//    (10/25/2018 6:00:00 PM -07:00) - (9/28/2018 9:00:00 AM -07:00): 27 days, 9:00
Dim firstDate As New DateTimeOffset(#10/25/2018 6:00PM#, _
                                    New TimeSpan(-7, 0, 0))
Dim secondDate As New DateTimeOffset(#10/25/2018 6:00PM#, _
                                     New TimeSpan(-5, 0, 0))
Dim thirdDate As New DateTimeOffset(#9/28/2018 9:00AM#, _
                                    New TimeSpan(-7, 0, 0))
Dim difference As TimeSpan

difference = firstDate.Subtract(secondDate)
Console.WriteLine($"({firstDate}) - ({secondDate}): {difference.Days} days, {difference.Hours}:{difference.Minutes:d2}")

difference = firstDate.Subtract(thirdDate)
Console.WriteLine($"({firstDate}) - ({thirdDate}): {difference.Days} days, {difference.Hours}:{difference.Minutes:d2}")

' The example produces the following output:
'    (10/25/2018 6:00:00 PM -07:00) - (10/25/2018 6:00:00 PM -05:00): 0 days, 2:00
'    (10/25/2018 6:00:00 PM -07:00) - (9/28/2018 9:00:00 AM -07:00): 27 days, 9:00

Комментарии

Этот метод преобразует оба DateTimeOffset объекта в время в формате UTC перед вычислением интервала времени, разделяющего их. Это позволяет удалить любое влияние, которое отличается от смещения в формате UTC для сравнения.

Примечание

Для языков, поддерживающих настраиваемые операторы, можно также вычитать дату и время с помощью оператора вычитания. Дополнительные сведения см. в описании Subtraction метода.

Поскольку ни текущий DateTimeOffset объект, ни value параметр не представляют дату и время в определенном часовом поясе, Subtract(DateTimeOffset) метод не учитывает правила корректировки определенного часового пояса при вычитания дат и времени.

См. также раздел

Применяется к

Subtract(TimeSpan)

Вычитает указанный интервал времени из текущего объекта DateTimeOffset.

public:
 DateTimeOffset Subtract(TimeSpan value);
public DateTimeOffset Subtract (TimeSpan value);
member this.Subtract : TimeSpan -> DateTimeOffset
Public Function Subtract (value As TimeSpan) As DateTimeOffset

Параметры

value
TimeSpan

Вычитаемый интервал времени.

Возвращаемое значение

DateTimeOffset

Объект, значение которого равно дате и времени, представленным текущим объектом DateTimeOffset, за вычетом интервала времени, представленного параметром value.

Исключения

Полученное DateTimeOffset значение меньше, чем DateTimeOffset.MinValue.

-или-

Полученное DateTimeOffset значение больше , чем DateTimeOffset.MaxValue.

Примеры

В следующем примере показано вычитание, использующее Subtract метод.

DateTimeOffset offsetDate = new DateTimeOffset(2007, 12, 3, 11, 30, 0,
                               new TimeSpan(-8, 0, 0));
TimeSpan duration = new TimeSpan(7, 18, 0, 0);
Console.WriteLine(offsetDate.Subtract(duration).ToString());  // Displays 11/25/2007 5:30:00 PM -08:00
let offsetDate = DateTimeOffset(2007, 12, 3, 11, 30, 0, TimeSpan(-8, 0, 0))
let duration = TimeSpan(7, 18, 0, 0)
printfn $"{offsetDate.Subtract duration}"  // Displays 11/25/2007 5:30:00 PM -08:00
Dim offsetDate As New DateTimeOffset(#12/3/2007 11:30AM#, _
                               New TimeSpan(-8, 0, 0)) 
Dim duration As New TimeSpan(7, 18, 0, 0)
Console.WriteLine(offsetDate.Subtract(duration))    ' Displays 11/25/2007 5:30:00 PM -08:00

Комментарии

Метод можно использовать для Subtract вычитания нескольких типов интервалов времени (дней, часов, минут, секунд или миллисекунд) в одной операции. Его поведение идентично методу Subtraction(DateTimeOffset, TimeSpan) , который определяет оператор вычитания. Структура DateTimeOffset также поддерживает специализированные методы сложения (например AddDays, AddHoursи AddMinutes), которые позволяют выполнять вычитание путем присвоения отрицательного значения параметру метода.

Примечание

Этот метод возвращает новый DateTimeOffset объект. Он не изменяет значение текущего объекта, добавляя timeSpan его к дате и времени.

Метод Subtract не влияет на значение DateTimeOffset свойства объекта Offset . Возвращаемый DateTimeOffset объект имеет то же смещение, что и исходный объект.

Поскольку текущий DateTimeOffset объект не представляет дату и время в определенном часовом поясе, Subtract(TimeSpan) метод не учитывает правила корректировки определенного часового пояса при выполнении вычитания.

См. также раздел

Применяется к