DateTime.Subtract 方法

定义

返回通过从此实例的值减去指定的时间或持续时间得到的值。

重载

Subtract(TimeSpan)

返回一个新的 DateTime,从此实例的值中减去指定持续时间。

Subtract(DateTime)

返回一个新的 TimeSpan,从此实例的值中减去指定的日期和时间。

Subtract(TimeSpan)

返回一个新的 DateTime,从此实例的值中减去指定持续时间。

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

参数

value
TimeSpan

待减去的时间间隔。

返回

一个对象,它等于此实例所表示的日期和时间减去 value 所表示的时间间隔。

例外

示例

下面的示例演示 Subtract 了 方法和减法运算符。

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)

注解

方法 Subtract(TimeSpan) 返回与当前实例的指定时间间隔差的日期。 若要确定两个日期之间的时间间隔,请 Subtract(DateTime) 调用 方法。 若要从当前实例中减去特定的时间间隔,请调用方法,该方法将该时间间隔添加到当前日期,并提供负值作为方法参数。 例如,若要从当前日期减去两个月,请调用 AddMonths(Int32) 值为 -2 的 方法。

此方法不会更改此 DateTime的值。 相反,它返回一个新的 DateTime ,其值是此操作的结果。

通常, DateTime.Subtract(TimeSpan) 方法减去 TimeSpan 表示正时间跨度的 对象,并返回 DateTime 早于当前实例的日期和时间的值。 但是,如果 TimeSpan 对象表示负时间跨度,则 DateTime.Subtract(TimeSpan) 该方法返回的值 DateTime 晚于当前实例的日期和时间。

方法 DateTime.Subtract(TimeSpan) 允许你减去由多个时间单位组成的时间间隔 (,例如给定的小时数和给定的分钟数) 。 若要从 DateTime 实例中减去单个时间单位 ((如年、月或日) ),可以将负数值作为参数传递给以下任一方法:

  • AddYears,用于从当前日期和时间实例中减去特定的年数。

  • AddMonths,用于从当前日期和时间实例中减去特定的月份数。

  • AddDays,用于从当前日期和时间实例减去特定的天数。

  • AddHours,用于从当前日期和时间实例中减去特定的小时数。

  • AddMinutes,用于从当前日期和时间实例减去特定的分钟数。

  • AddSeconds,用于从当前日期和时间实例中减去特定秒数。

  • AddMilliseconds,从当前日期和时间实例中减去特定的毫秒数。

  • AddTicks,用于从当前日期和时间实例中减去特定数量的计时周期。

另请参阅

适用于

Subtract(DateTime)

返回一个新的 TimeSpan,从此实例的值中减去指定的日期和时间。

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

参数

value
DateTime

要减去的日期和时间值。

返回

一个时间间隔,它等于此实例所表示的日期和时间减去 value 所表示的日期和时间。

例外

示例

下面的示例演示 Subtract 了 方法和减法运算符。

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)

注解

方法 Subtract(DateTime) 确定两个日期之间的差异。 若要从当前实例中减去时间间隔,请 Subtract(TimeSpan) 调用 方法。 若要从当前实例中减去特定的时间间隔,请调用方法,该方法将该时间间隔添加到当前日期,并提供负值作为方法参数。 例如,若要从当前日期减去两个月,请调用 AddMonths(Int32) 值为 -2 的 方法。

如果当前实例的日期和时间早于 value,该方法将返回表示 TimeSpan 负时间跨度的 对象。 也就是说,其所有非零属性(如 DaysTicks) ) (的值都是负数。

执行减法时, Subtract(DateTime) 方法不考虑 KindDateTime 个值的 属性的值。 在减 DateTime 去对象之前,请确保对象表示同一时区中的时间。 否则,结果将包括时区之间的差异。

备注

方法 DateTimeOffset.Subtract(DateTimeOffset) 在执行减法时会考虑时区之间的差异。

另请参阅

适用于