Duration 构造函数

const Duration({
  1. int days = 0,
  2. int hours = 0,
  3. int minutes = 0,
  4. int seconds = 0,
  5. int milliseconds = 0,
  6. int microseconds = 0,
})

创建一个新的 Duration 对象,其值是所有单独部分的和。

单独的部分可以大于下一个更大单位中的这些部分的数量。例如,hours 可以大于 23。如果发生这种情况,值会溢出到下一个更大单位,因此 26 个 hours 等同于 2 个 hours 和一天。同样,值也可以是负数,在这种情况下,它们会下溢并从下一个更大单位中减去。

如果无法将总的微秒数表示为整数值,微秒数可能会溢出并截断为更小的位数,或者可能会丢失精度。

所有参数默认为 0。

const duration = Duration(days: 1, hours: 8, minutes: 56, seconds: 59,
  milliseconds: 30, microseconds: 10);
print(duration); // 32:56:59.030010

实现

const Duration(
    {int days = 0,
    int hours = 0,
    int minutes = 0,
    int seconds = 0,
    int milliseconds = 0,
    int microseconds = 0})
    : this._microseconds(microseconds +
          microsecondsPerMillisecond * milliseconds +
          microsecondsPerSecond * seconds +
          microsecondsPerMinute * minutes +
          microsecondsPerHour * hours +
          microsecondsPerDay * days);