Класс 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
См. также:
- Реализованные типы
Конструкторы
- 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