gpt4 book ai didi

c# - 如何将微秒和纳秒添加到日期时间?

转载 作者:行者123 更新时间:2023-12-04 13:34:01 26 4
gpt4 key购买 nike

我想将微秒和纳秒添加到 DateTime

DateTime dateTime = DateTime.Now;

for(int i = 0; i < 100000; i++)
{
dateTime = dateTime.AddMilliseconds(0.1);
Console.WriteLine(dateTime.ToString("yyyy.MM.dd,HH:mm:ss.ffffff"));
}

我看不出我的 dateTime 有什么不同。这是正确的做法吗?

最佳答案

来自 DateTime.AddMilliseconds documentation ;

Parameters

value

Type: System.Double

A number of whole and fractional milliseconds. The value parameter can be negative or positive. Note that this value is rounded to the nearest integer.

你还可以看到它是reference source作为:

public DateTime AddMilliseconds(double value)
{
return Add(value, 1);
}

并称之为 Add method reference ;

private DateTime Add(double value, int scale)
{
long millis = (long)(value * scale + (value >= 0? 0.5: -0.5));
...
...
}

对于 value = 0.1scale = 1,它将是

long millis = (long)(0.6);

并且这个 (long)(0.6) 返回 0 因为 Explicit Numeric Conversions Table说;

When you convert from a double or float value to an integral type, the value is truncated

因此,实际上,您没有向该 DateTime 实例添加任何内容,并且您在所有迭代中得到相同的结果。当您处理 DateTime 的 AddXXX 方法以防止混淆时,我会使用整数。

因为 1 毫秒是 10000 次抽动,所以您所做的数学等于;

DateTime dateTime = DateTime.Now;

for(int i = 0; i < 100000; i++)
{
dateTime = dateTime.AddTicks(1000);
Console.WriteLine(dateTime.ToString("yyyy.MM.dd,HH:mm:ss.ffffff"));
}

关于c# - 如何将微秒和纳秒添加到日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41919876/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com