Spec-Zone.ru › Dart 2

dart:core

Класс Duration

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

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

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

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

Чтобы создать новый объект 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, чтобы получить целое значение продолжительности в указанных единицах измерения времени. Обратите внимание, что возвращаемое значение округляется вниз. Например,

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
только для чтения, унаследовано
Представление runtime типа объекта.

Методы

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

Операторы

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

Spec-Zone.ru

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