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