DateTime.AddMilliseconds(Double) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回一个新的 DateTime,它将指定的毫秒数加到此实例的值上。
public:
DateTime AddMilliseconds(double value);
public DateTime AddMilliseconds (double value);
member this.AddMilliseconds : double -> DateTime
Public Function AddMilliseconds (value As Double) As DateTime
参数
- value
- Double
由整数和小数部分组成的毫秒数。
value
参数可以是负数也可以是正数。 请注意,该值被舍入到最近的整数。
返回
一个对象,其值是此实例所表示的日期和时间与 value
所表示的毫秒数之和。
例外
示例
以下示例使用 AddMilliseconds 方法向值添加 1 毫秒和 1.5 毫秒 DateTime 。 然后,它显示每个新值,并显示它与原始值之间的差异。 差异同时显示为时间跨度和时钟周期数。 该示例明确表示,1 毫秒等于 10,000 个时钟周期。 它还显示,在执行加法之前,以毫秒为单位的小数舍入;将 DateTime 1.5 毫秒添加到原始日期后产生的值比原始日期大 2 毫秒。
string dateFormat = "MM/dd/yyyy hh:mm:ss.fffffff";
DateTime date1 = new DateTime(2010, 9, 8, 16, 0, 0);
Console.WriteLine("Original date: {0} ({1:N0} ticks)\n",
date1.ToString(dateFormat), date1.Ticks);
DateTime date2 = date1.AddMilliseconds(1);
Console.WriteLine("Second date: {0} ({1:N0} ticks)",
date2.ToString(dateFormat), date2.Ticks);
Console.WriteLine("Difference between dates: {0} ({1:N0} ticks)\n",
date2 - date1, date2.Ticks - date1.Ticks);
DateTime date3 = date1.AddMilliseconds(1.5);
Console.WriteLine("Third date: {0} ({1:N0} ticks)",
date3.ToString(dateFormat), date3.Ticks);
Console.WriteLine("Difference between dates: {0} ({1:N0} ticks)",
date3 - date1, date3.Ticks - date1.Ticks);
// The example displays the following output:
// Original date: 09/08/2010 04:00:00.0000000 (634,195,584,000,000,000 ticks)
//
// Second date: 09/08/2010 04:00:00.0010000 (634,195,584,000,010,000 ticks)
// Difference between dates: 00:00:00.0010000 (10,000 ticks)
//
// Third date: 09/08/2010 04:00:00.0020000 (634,195,584,000,020,000 ticks)
// Difference between dates: 00:00:00.0020000 (20,000 ticks)
let dateFormat = "MM/dd/yyyy hh:mm:ss.fffffff"
let date1 = DateTime(2010, 9, 8, 16, 0, 0)
printfn $"Original date: {date1.ToString dateFormat} ({date1.Ticks:N0} ticks)\n"
let date2 = date1.AddMilliseconds 1
printfn $"Second date: {date2.ToString dateFormat} ({date2.Ticks:N0} ticks)"
printfn $"Difference between dates: {date2 - date1} ({date2.Ticks - date1.Ticks:N0} ticks)\n"
let date3 = date1.AddMilliseconds 1.5
printfn $"Third date: {date3.ToString dateFormat} ({date3.Ticks:N0} ticks)"
printfn $"Difference between dates: {date3 - date1} ({date3.Ticks - date1.Ticks:N0} ticks)"
// The example displays the following output:
// Original date: 09/08/2010 04:00:00.0000000 (634,195,584,000,000,000 ticks)
//
// Second date: 09/08/2010 04:00:00.0010000 (634,195,584,000,010,000 ticks)
// Difference between dates: 00:00:00.0010000 (10,000 ticks)
//
// Third date: 09/08/2010 04:00:00.0020000 (634,195,584,000,020,000 ticks)
// Difference between dates: 00:00:00.0020000 (20,000 ticks)
Dim dateFormat As String = "MM/dd/yyyy hh:mm:ss.fffffff"
Dim date1 As Date = #09/08/2010 16:00#
Console.WriteLine("Original date: {0} ({1:N0} ticks)", _
date1.ToString(dateFormat), date1.Ticks)
Console.WriteLine()
Dim date2 As Date = date1.AddMilliseconds(1)
Console.WriteLine("Second date: {0} ({1:N0} ticks)", _
date2.ToString(dateFormat), date2.Ticks)
Console.WriteLine("Difference between dates: {0} ({1:N0} ticks)", _
date2 - date1, date2.Ticks - date1.Ticks)
Console.WriteLine()
Dim date3 As Date = date1.AddMilliseconds(1.5)
Console.WriteLine("Third date: {0} ({1:N0} ticks)", _
date3.ToString(dateFormat), date3.Ticks)
Console.WriteLine("Difference between dates: {0} ({1:N0} ticks)", _
date3 - date1, date3.Ticks - date1.Ticks)
' The example displays the following output:
' Original date: 09/08/2010 04:00:00.0000000 (634,195,584,000,000,000 ticks)
'
' Second date: 09/08/2010 04:00:00.0010000 (634,195,584,000,010,000 ticks)
' Difference between dates: 00:00:00.0010000 (10,000 ticks)
'
' Third date: 09/08/2010 04:00:00.0020000 (634,195,584,000,020,000 ticks)
' Difference between dates: 00:00:00.0020000 (20,000 ticks)
注解
此方法不会更改此 DateTime的值。 相反,它返回一个新的 DateTime ,其值是此操作的结果。
的小数部分 value
是毫秒的小数部分。 例如,4.5 相当于 4 毫秒和 5000 个刻度,其中 1 毫秒 = 10000 个刻度。
在 .NET 6 及更早版本中, value
参数四舍五入为最接近的毫秒。 在 .NET 7 及更高版本中,将使用 参数的完整Doublevalue
精度。 但是,由于浮点数学固有的不精确性,生成的精度将有所不同。