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

C#时间跨度毫秒与总毫秒,c#,.net,timespan,C#,.net,Timespan,在下面的示例中,为什么毫秒属性返回0,而总毫秒属性返回5000 // 5 seconds TimeSpan intervalTimespan = new TimeSpan(0, 0, 5); // returns 0 intervalTimespan.Milliseconds; // returns 5000.0 intervalTimespan.TotalMilliseconds 因为millizes返回毫秒部分,而totalmillizes返回由Timespan 示例:0:00:05.

在下面的示例中,为什么
毫秒
属性返回
0
,而
总毫秒
属性返回
5000

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

// returns 0
intervalTimespan.Milliseconds;

// returns 5000.0
intervalTimespan.TotalMilliseconds

因为
millizes
返回毫秒部分,而totalmillizes返回由
Timespan

示例:0:00:05.047

毫秒:47

总毫秒数:5047

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

  • 毫秒
    仅返回
    时间跨度
    的毫秒部分,而
    总毫秒
    计算时间跨度表示的时间毫秒数


    在您的例子中,第一个返回
    0
    ,因为您正好有5秒,第二个返回
    5000
    ,因为5s==5000ms

    这是因为
    intervalTimespan。毫秒
    返回时间跨度的毫秒分量。 在timespan构造函数中,只有小时、分钟和秒组件,这就是结果为0的原因

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

    例如:

    // 5 milliseconds
    TimeSpan intervalTimespan = new TimeSpan(0, 0,0,0,5);
    
    // returns 5
    intervalTimespan.Milliseconds;
    
    // returns 5
    intervalTimespan.TotalMilliseconds
    

    TimeSpan
    还有其他重载:

    TimeSpan(hour, minute, seconds)
    TimeSpan(days, hour, minute, seconds)
    TimeSpan(days, hour, minute, seconds, milliseconds)
    
    毫秒
    属性返回实际的毫秒值


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

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

    millizes
    属性表示整毫秒,而
    totalmillizes
    属性表示整毫秒和分数毫秒

    这也可以从
    totalmillists
    的备注中扣除:

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


    这有一个巨大的含义,IMO,因为如果您想要以秒或毫秒为单位获得最精确的表示,则必须使用
    TotalSeconds
    totalmicondises
    属性,这两种类型都是
    double

    @AJM,用于说明示例内容的文档非常明确。请注意,
    TimeSpan
    的所有组件都是这样的属性对,而不仅仅是毫秒<代码>分钟数/
    总分钟数
    小时数
    /
    总小时数
    ,等等。。。