Spec-Zone.ru › Dart 2

dart:core

Класс Duration

Промежуток времени, например 27 дней, 4 часа, 12 минут и 3 секунды.

Duration представляет собой разницу между двумя моментами времени. Длительность может быть «отрицательной», если разница отсчитывается от более позднего момента к более раннему.

Длительности не зависят от контекста. Например, длительность в 2 дня всегда равна 48 часам, даже если она прибавляется к DateTime как раз в момент, когда часовой пояс собирается перейти на летнее время. (См. DateTime.add).

Несмотря на одинаковое название, объект Duration не реализует «длительности» в соответствии со спецификацией ISO 8601. В частности, объект длительности не хранит информацию об отдельных переданных компонентах (таких как «дни» или «часы»), а использует эти аргументы только для вычисления длины соответствующего временного интервала.

Чтобы создать новый объект Duration, используйте единственный конструктор этого класса, передав соответствующие аргументы:

const fastestMarathon = Duration(hours: 2, minutes: 3, seconds: 2);

Duration представляет собой одно значение в микросекундах, равное сумме всех отдельных аргументов конструктора.

Свойства позволяют получать это значение в разных формах. Например, inMinutes возвращает количество целых минут в общей длительности, включая минуты, переданные конструктору как «часы»; это значение может быть больше 59.

const fastestMarathon = Duration(hours: 2, minutes: 3, seconds: 2);
print(fastestMarathon.inDays); // 0
print(fastestMarathon.inHours); // 2
print(fastestMarathon.inMinutes); // 123
print(fastestMarathon.inSeconds); // 7382
print(fastestMarathon.inMilliseconds); // 7382000

Длительность может быть отрицательной; в этом случае все свойства, вычисляемые на основе длительности, также будут неположительными.

const overDayAgo = Duration(days: -1, hours: -10);
print(overDayAgo.inDays); // -1
print(overDayAgo.inHours); // -34
print(overDayAgo.inMinutes); // -2040

Используйте одно из свойств, например inDays, чтобы получить целочисленное значение Duration в указанной единице времени. Обратите внимание, что возвращаемое значение округляется вниз. Например:

const aLongWeekend = Duration(hours: 88);
print(aLongWeekend.inDays); // 3

Этот класс предоставляет набор арифметических операторов и операторов сравнения, а также набор констант, полезных для преобразования единиц времени.

const firstHalf = Duration(minutes: 45); // 00:45:00.000000
const secondHalf = Duration(minutes: 45); // 00:45:00.000000
const overTime = Duration(minutes: 30); // 00:30:00.000000
final maxGameTime = firstHalf + secondHalf + overTime;
print(maxGameTime.inMinutes); // 120

// The duration of the firstHalf and secondHalf is the same, returns 0.
var result = firstHalf.compareTo(secondHalf);
print(result); // 0

// Duration of overTime is shorter than firstHalf, returns < 0.
result = overTime.compareTo(firstHalf);
print(result); // < 0

// Duration of secondHalf is longer than overTime, returns > 0.
result = secondHalf.compareTo(overTime);
print(result); // > 0

См. также:

  • DateTime для представления момента времени.
  • Stopwatch для измерения промежутков времени.
Реализуемые типы
  • Comparable<Duration>

Конструкторы

Duration({int days = 0, int hours = 0, int minutes = 0, int seconds = 0, int milliseconds = 0, int microseconds = 0})
const
Создает новый объект Duration, значение которого равно сумме всех отдельных составляющих.

Свойства

hashCode → int
только для чтенияпереопределено
Хеш-код этого объекта.
inDays → int
только для чтения
Количество полных дней, охватываемых этой длительностью Duration.
inHours → int
только для чтения
Количество полных часов, охватываемых этой длительностью Duration.
inMicroseconds → int
только для чтения
Количество полных микросекунд, охватываемых этой длительностью Duration.
inMilliseconds → int
только для чтения
Количество полных миллисекунд, охватываемых этой длительностью Duration.
inMinutes → int
только для чтения
Количество полных минут, охватываемых этой длительностью Duration.
inSeconds → int
только для чтения
Количество полных секунд, охватываемых этой длительностью Duration.
isNegative → bool
только для чтения
Является ли эта длительность Duration отрицательной.
runtimeType → Type
только для чтенияунаследовано
Представление типа объекта во время выполнения.

Методы

abs() → Duration
Создает новый объект Duration, представляющий абсолютную величину этой длительности Duration.
compareTo(Duration other) → int
переопределено
Сравнивает эту длительность Duration с other и возвращает ноль, если значения равны.
noSuchMethod(Invocation invocation) → dynamic
унаследовано
Вызывается при обращении к несуществующему методу или свойству.
toString() → String
переопределено
Возвращает строковое представление этой длительности Duration.

Операторы

operator *(num factor) → Duration
Умножает эту длительность Duration на заданный factor и возвращает результат в виде нового объекта Duration.
operator +(Duration other) → Duration
Складывает эту длительность Duration и other и возвращает сумму в виде нового объекта Duration.
operator -(Duration other) → Duration
Вычитает other из этой длительности Duration и возвращает разность в виде нового объекта Duration.
operator <(Duration other) → bool
Является ли эта длительность Duration короче, чем other.
operator <=(Duration other) → bool
Является ли эта длительность Duration короче или равна other.
operator ==(Object other) → bool
переопределено
Имеет ли эта длительность Duration ту же длину, что и other.
operator >(Duration other) → bool
Является ли эта длительность Duration длиннее, чем other.
operator >=(Duration other) → bool
Является ли эта длительность Duration длиннее или равна other.
operator unary-() → Duration
Создает новую длительность Duration с направлением, противоположным направлению этой длительности Duration.
operator ~/(int quotient) → Duration
Делит эту длительность Duration на заданное quotient и возвращает результат с усеченной дробной частью в виде нового объекта Duration.

Константы

hoursPerDay → const int
Количество часов в сутках.
24
microsecondsPerDay → const int
Количество микросекунд в сутках.
microsecondsPerHour * hoursPerDay
microsecondsPerHour → const int
Количество микросекунд в часе.
microsecondsPerMinute * minutesPerHour
microsecondsPerMillisecond → const int
Количество микросекунд в миллисекунде.
1000
microsecondsPerMinute → const int
Количество микросекунд в минуте.
microsecondsPerSecond * secondsPerMinute
microsecondsPerSecond → const int
Количество микросекунд в секунде.
microsecondsPerMillisecond * millisecondsPerSecond
millisecondsPerDay → const int
Количество миллисекунд в сутках.
millisecondsPerHour * hoursPerDay
millisecondsPerHour → const int
Количество миллисекунд в часе.
millisecondsPerMinute * minutesPerHour
millisecondsPerMinute → const int
Количество миллисекунд в минуте.
millisecondsPerSecond * secondsPerMinute
millisecondsPerSecond → const int
Количество миллисекунд в секунде.
1000
minutesPerDay → const int
Количество минут в сутках.
minutesPerHour * hoursPerDay
minutesPerHour → const int
Количество минут в часе.
60
secondsPerDay → const int
Количество секунд в сутках.
secondsPerHour * hoursPerDay
secondsPerHour → const int
Количество секунд в часе.
secondsPerMinute * minutesPerHour
secondsPerMinute → const int
Количество секунд в минуте.
60
zero → const Duration
Нулевая длительность, представляющая отсутствие времени.
Duration(seconds: 0)

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-core/Duration-class.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API