C# 时间跨度毫秒与总毫秒

发布于 2024-10-27 09:18:03 字数 309 浏览 5 评论 0原文

在下面的示例中,为什么 Milliseconds 属性返回 0TotalMilliseconds 属性返回 5000

// 5 seconds
TimeSpan intervalTimespan = new TimeSpan(0, 0, 5);

// returns 0
intervalTimespan.Milliseconds;

// returns 5000.0
intervalTimespan.TotalMilliseconds

In the example below, why does the Milliseconds property return 0 but the TotalMilliseconds property return 5000?

// 5 seconds
TimeSpan intervalTimespan = new TimeSpan(0, 0, 5);

// returns 0
intervalTimespan.Milliseconds;

// returns 5000.0
intervalTimespan.TotalMilliseconds

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

长途伴 2024-11-03 09:18:03

简单:

  • 毫秒是剩余的毫秒,不构成一整秒。
  • TotalMilliseconds 是以毫秒表示的时间跨度的完整持续时间。

Simple:

  • Milliseconds are the remaining milliseconds, that don't form a whole second.
  • TotalMilliseconds is the complete duration of the timespan expressed as milliseconds.
最近可好 2024-11-03 09:18:03

因为 Milliseconds 返回毫秒部分,而 TotalMilliseconds 返回由 Timespan 表示的总毫秒数

示例:0:00:05.047

毫秒:47

总毫秒数:5047

Because Milliseconds returns the Milliseconds portion, and TotalMilliseconds returns the total milliseconds represented by the Timespan

Example: 0:00:05.047

Milliseconds: 47

Total Milliseconds: 5047

可遇━不可求 2024-11-03 09:18:03

发生这种情况是因为 intervalTimespan.Milliseconds 返回时间跨度的毫秒部分。
在时间跨度构造函数中,只有小时、分钟和秒部分,这就是结果为 0 的原因。

intervalTimespan.TotalMilliseconds 获取时间跨度的总毫秒数。

例子:

// 5 milliseconds
TimeSpan intervalTimespan = new TimeSpan(0, 0,0,0,5);

// returns 5
intervalTimespan.Milliseconds;

// returns 5
intervalTimespan.TotalMilliseconds

This hapens because intervalTimespan.Milliseconds returns the millisecond component of the timespan.
In your timespan constructor, you only have hour, minute, and second components, which is why the result is 0.

intervalTimespan.TotalMilliseconds gets you the total milliseconds of the timespan.

Example:

// 5 milliseconds
TimeSpan intervalTimespan = new TimeSpan(0, 0,0,0,5);

// returns 5
intervalTimespan.Milliseconds;

// returns 5
intervalTimespan.TotalMilliseconds
油饼 2024-11-03 09:18:03

TimeSpan 还有其他重载:

TimeSpan(hour, minute, seconds)
TimeSpan(days, hour, minute, seconds)
TimeSpan(days, hour, minute, seconds, milliseconds)

Milliseconds 属性返回实际的毫秒值。

TotalMilliseconds 属性返回总毫秒数,包括天、小时、分钟和秒。

TimeSpan has other overloads:

TimeSpan(hour, minute, seconds)
TimeSpan(days, hour, minute, seconds)
TimeSpan(days, hour, minute, seconds, milliseconds)

The Milliseconds property returns the actual milliseconds value.

The TotalMilliseconds property returns the overall milliseconds including days, hours, minutes, and seconds.

墟烟 2024-11-03 09:18:03

Miliseconds 仅返回 TimeSpan 的毫秒部分,而 TotalMilliseconds 计算 TimeSpan 表示的时间中有多少毫秒。

在您的情况下,第一个返回 0 因为您正好有 5 秒,第二个返回 5000 因为 5s == 5000ms

Miliseconds returns just the milliseconds part of your TimeSpan, while TotalMilliseconds calculates how many milliseconds are in time represented by TimeSpan.

In your case, first returns 0 because you have exactly 5 seconds, second returns 5000 because 5s == 5000ms

百思不得你姐 2024-11-03 09:18:03

其他事情没有提到的一件重要的事情是(根据文档):

Milliseconds 属性表示整数毫秒,而 TotalMilliseconds 属性表示整数和小数毫秒。

这也可以从 TotalMilliseconds 的注释中扣除:

此属性将此实例的值从刻度转换为毫秒。

IMO,这具有巨大的含义,因为如果您想要以秒或毫秒为单位的最精确表示,则必须使用 TotalSecondsTotalMilliseconds 属性,它们都是double类型。

One important thing other things don't mention, is that (according to the docs):

The Milliseconds property represents whole milliseconds, whereas the TotalMilliseconds property represents whole and fractional milliseconds.

That is also deductible from the remarks of TotalMilliseconds:

This property converts the value of this instance from ticks to milliseconds.

This has a huge implication, IMO, because if you want the most precise representation in seconds or milliseconds, you must use TotalSeconds or TotalMilliseconds properties, both of them are of type double.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文