# DateTime.Subtract Method

## Definition

Important

Some information relates to prerelease product that may be substantially modified before itâ€™s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Returns the value that results from subtracting the specified time or duration from the value of this instance.

## Overloads

Subtract(DateTime) |
Returns a new TimeSpan that subtracts the specified date and time from the value of this instance. |

Subtract(TimeSpan) |
Returns a new DateTime that subtracts the specified duration from the value of this instance. |

## Subtract(DateTime)

Returns a new TimeSpan that subtracts the specified date and time from the value of this instance.

```
public:
TimeSpan Subtract(DateTime value);
```

`public TimeSpan Subtract (DateTime value);`

`member this.Subtract : DateTime -> TimeSpan`

`Public Function Subtract (value As DateTime) As TimeSpan`

#### Parameters

- value
- DateTime

The date and time value to subtract.

#### Returns

A time interval that is equal to the date and time represented by this instance minus the date and time represented by `value`

.

#### Exceptions

The result is less than DateTime.MinValue or greater than DateTime.MaxValue.

### Examples

The following example demonstrates the Subtract method and the subtraction operator.

```
System::DateTime date1 = System::DateTime( 1996, 6, 3, 22, 15, 0 );
System::DateTime date2 = System::DateTime( 1996, 12, 6, 13, 2, 0 );
System::DateTime date3 = System::DateTime( 1996, 10, 12, 8, 42, 0 );
// diff1 gets 185 days, 14 hours, and 47 minutes.
System::TimeSpan diff1 = date2.Subtract( date1 );
// date4 gets 4/9/1996 5:55:00 PM.
System::DateTime date4 = date3.Subtract( diff1 );
// diff2 gets 55 days 4 hours and 20 minutes.
System::TimeSpan diff2 = date2 - date3;
// date5 gets 4/9/1996 5:55:00 PM.
System::DateTime date5 = date1 - diff2;
```

```
open System
let date1 = DateTime(1996, 6, 3, 22, 15, 0)
let date2 = DateTime(1996, 12, 6, 13, 2, 0)
let date3 = DateTime(1996, 10, 12, 8, 42, 0)
// diff1 gets 185 days, 14 hours, and 47 minutes.
let diff1 = date2.Subtract date1
// date4 gets 4/9/1996 5:55:00 PM.
let date4 = date3.Subtract diff1
// diff2 gets 55 days 4 hours and 20 minutes.
let diff2 = date2 - date3
// date5 gets 4/9/1996 5:55:00 PM.
let date5 = date1 - diff2
```

```
System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0);
System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0);
System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0);
// diff1 gets 185 days, 14 hours, and 47 minutes.
System.TimeSpan diff1 = date2.Subtract(date1);
// date4 gets 4/9/1996 5:55:00 PM.
System.DateTime date4 = date3.Subtract(diff1);
// diff2 gets 55 days 4 hours and 20 minutes.
System.TimeSpan diff2 = date2 - date3;
// date5 gets 4/9/1996 5:55:00 PM.
System.DateTime date5 = date1 - diff2;
```

```
Dim date1 As New System.DateTime(1996, 6, 3, 22, 15, 0)
Dim date2 As New System.DateTime(1996, 12, 6, 13, 2, 0)
Dim date3 As New System.DateTime(1996, 10, 12, 8, 42, 0)
Dim diff1 As System.TimeSpan
' diff1 gets 185 days, 14 hours, and 47 minutes.
diff1 = date2.Subtract(date1)
Dim date4 As System.DateTime
' date4 gets 4/9/1996 5:55:00 PM.
date4 = date3.Subtract(diff1)
Dim diff2 As System.TimeSpan
' diff2 gets 55 days 4 hours and 20 minutes.
diff2 = System.DateTime.op_Subtraction(date2, date3)
Dim date5 As System.DateTime
' date5 gets 4/9/1996 5:55:00 PM.
date5 = System.DateTime.op_Subtraction(date1, diff2)
```

### Remarks

The Subtract(DateTime) method determines the difference between two dates. To subtract a time interval from the current instance, call the Subtract(TimeSpan) method. To subtract a particular time interval from the current instance, call the method that adds that time interval to the current date, and supply a negative value as the method argument. For example, to subtract two months from the current date, call the AddMonths(Int32) method with a value of -2.

If the date and time of the current instance is earlier than `value`

, the method returns a TimeSpan object that represents a negative time span. That is, the value of all of its non-zero properties (such as Days or Ticks) is negative.

The Subtract(DateTime) method does not consider the value of the Kind property of the two DateTime values when performing the subtraction. Before subtracting DateTime objects, ensure that the objects represent times in the same time zone. Otherwise, the result will include the difference between time zones.

Note

The DateTimeOffset.Subtract(DateTimeOffset) method does consider the difference between time zones when performing the subtraction.

### See also

### Applies to

## Subtract(TimeSpan)

Returns a new DateTime that subtracts the specified duration from the value of this instance.

```
public:
DateTime Subtract(TimeSpan value);
```

`public DateTime Subtract (TimeSpan value);`

`member this.Subtract : TimeSpan -> DateTime`

`Public Function Subtract (value As TimeSpan) As DateTime`

#### Parameters

- value
- TimeSpan

The time interval to subtract.

#### Returns

An object that is equal to the date and time represented by this instance minus the time interval represented by `value`

.

#### Exceptions

The result is less than DateTime.MinValue or greater than DateTime.MaxValue.

### Examples

The following example demonstrates the Subtract method and the subtraction operator.

```
System::DateTime date1 = System::DateTime( 1996, 6, 3, 22, 15, 0 );
System::DateTime date2 = System::DateTime( 1996, 12, 6, 13, 2, 0 );
System::DateTime date3 = System::DateTime( 1996, 10, 12, 8, 42, 0 );
// diff1 gets 185 days, 14 hours, and 47 minutes.
System::TimeSpan diff1 = date2.Subtract( date1 );
// date4 gets 4/9/1996 5:55:00 PM.
System::DateTime date4 = date3.Subtract( diff1 );
// diff2 gets 55 days 4 hours and 20 minutes.
System::TimeSpan diff2 = date2 - date3;
// date5 gets 4/9/1996 5:55:00 PM.
System::DateTime date5 = date1 - diff2;
```

```
open System
let date1 = DateTime(1996, 6, 3, 22, 15, 0)
let date2 = DateTime(1996, 12, 6, 13, 2, 0)
let date3 = DateTime(1996, 10, 12, 8, 42, 0)
// diff1 gets 185 days, 14 hours, and 47 minutes.
let diff1 = date2.Subtract date1
// date4 gets 4/9/1996 5:55:00 PM.
let date4 = date3.Subtract diff1
// diff2 gets 55 days 4 hours and 20 minutes.
let diff2 = date2 - date3
// date5 gets 4/9/1996 5:55:00 PM.
let date5 = date1 - diff2
```

```
System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0);
System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0);
System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0);
// diff1 gets 185 days, 14 hours, and 47 minutes.
System.TimeSpan diff1 = date2.Subtract(date1);
// date4 gets 4/9/1996 5:55:00 PM.
System.DateTime date4 = date3.Subtract(diff1);
// diff2 gets 55 days 4 hours and 20 minutes.
System.TimeSpan diff2 = date2 - date3;
// date5 gets 4/9/1996 5:55:00 PM.
System.DateTime date5 = date1 - diff2;
```

```
Dim date1 As New System.DateTime(1996, 6, 3, 22, 15, 0)
Dim date2 As New System.DateTime(1996, 12, 6, 13, 2, 0)
Dim date3 As New System.DateTime(1996, 10, 12, 8, 42, 0)
Dim diff1 As System.TimeSpan
' diff1 gets 185 days, 14 hours, and 47 minutes.
diff1 = date2.Subtract(date1)
Dim date4 As System.DateTime
' date4 gets 4/9/1996 5:55:00 PM.
date4 = date3.Subtract(diff1)
Dim diff2 As System.TimeSpan
' diff2 gets 55 days 4 hours and 20 minutes.
diff2 = System.DateTime.op_Subtraction(date2, date3)
Dim date5 As System.DateTime
' date5 gets 4/9/1996 5:55:00 PM.
date5 = System.DateTime.op_Subtraction(date1, diff2)
```

### Remarks

The Subtract(TimeSpan) method returns the date that is a specified time interval difference from the current instance. To determine the time interval between two dates, call the Subtract(DateTime) method. To subtract a particular time interval from the current instance, call the method that adds that time interval to the current date, and supply a negative value as the method argument. For example, to subtract two months from the current date, call the AddMonths(Int32) method with a value of -2.

This method does not change the value of this DateTime. Instead, it returns a new DateTime whose value is the result of this operation.

Ordinarily, the DateTime.Subtract(TimeSpan) method subtracts a TimeSpan object that represents a positive time span and returns a DateTime value that is earlier than the date and time of the current instance. However, if the TimeSpan object represents a negative time span, the DateTime.Subtract(TimeSpan) method returns a DateTime value that is later than the date and time of the current instance.

The DateTime.Subtract(TimeSpan) method allows you to subtract a time interval that consists of more than one unit of time (such as a given number of hours and a given number of minutes). To subtract a single unit of time (such as years, months, or days) from the DateTime instance, you can pass a negative numeric value as a parameter to any of the following methods:

AddYears, to subtract a specific number of years from the current date and time instance.

AddMonths, to subtract a specific number of months from the current date and time instance.

AddDays, to subtract a specific number of days from the current date and time instance.

AddHours, to subtract a specific number of hours from the current date and time instance.

AddMinutes, to subtract a specific number of minutes from the current date and time instance.

AddSeconds, to subtract a specific number of seconds from the current date and time instance.

AddMilliseconds, to subtract a specific number of milliseconds from the current date and time instance.

AddTicks, to subtract a specific number of ticks from the current date and time instance.