【问题标题】:C# Timespan Milliseconds vs TotalMillisecondsC# 时间跨度毫秒与 TotalMilliseconds
【发布时间】:2011-03-30 09:18:13
【问题描述】:

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

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

// returns 0
intervalTimespan.Milliseconds;

// returns 5000.0
intervalTimespan.TotalMilliseconds

【问题讨论】:

  • @AJM Timespan 的文档非常明确地说明了示例的含义。
  • 请注意,TimeSpan 的所有组件都以这样的属性对出现,而不仅仅是毫秒。 Mintes/TotalMinutes、Hours/TotalHours等……

标签: c# .net timespan


【解决方案1】:

简单:

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

【讨论】:

    【解决方案2】:

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

    示例:0:00:05.047

    毫秒:47

    总毫秒数:5047

    【讨论】:

      【解决方案3】:

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

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

      例子:

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

      【讨论】:

        【解决方案4】:

        TimeSpan 有其他重载:

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

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

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

        【讨论】:

          【解决方案5】:

          Miliseconds 只返回TimeSpan 的毫秒部分,而TotalMilliseconds 计算TimeSpan 表示的时间毫秒数。

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

          【讨论】:

            【解决方案6】:

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

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

            这也可以从TotalMilliseconds的言论中扣除:

            此属性将此实例的值从滴答数转换为毫秒。

            这有很大的含义,IMO,因为如果你想要以秒或毫秒为单位的最精确表示,你必须使用TotalSeconds 或TotalMilliseconds 属性,它们都是@ 类型987654326@.

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-08-29
              • 2014-03-20
              • 1970-01-01
              • 2017-01-15
              • 1970-01-01
              相关资源
              最近更新 更多