dart:core
庫中Duration
類的用法介紹如下。
時間跨度,例如 27 天 4 小時 12 分鍾 3 秒。
Duration
表示從一個時間點到另一個時間點的差異。如果差異是從較晚的時間到較早的時間,則持續時間可能是"negative"。
持續時間與上下文無關。例如,2 天的持續時間始終為 48 小時,即使在時區即將進行 daylight-savings 切換時添加到 DateTime
也是如此。 (參見DateTime.add)。
盡管名稱相同,但 Duration
對象並未按照 ISO 8601 的規定實現 "Durations"。特別是,持續時間對象不會跟蹤單獨提供的成員(例如 "days" 或 "hours"),但僅使用這些參數來計算相應時間間隔的長度。
要創建一個新的 Duration
對象,請使用該類的單個構造函數並提供適當的參數:
const fastestMarathon = Duration(hours: 2, minutes: 3, seconds: 2);
Duration 表示單個微秒數,它是構造函數的所有單個參數的總和。
屬性可以以不同的方式訪問該單個數字。例如,inMinutes 給出了總持續時間中的整分鍾數,其中包括作為 "hours" 提供給構造函數的分鍾數,並且可以大於 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
也可以看看:
- 實現的類型
相關用法
- Dart Duration.inDays用法及代碼示例
- Dart Duration.inMicroseconds用法及代碼示例
- Dart Duration.inMinutes用法及代碼示例
- Dart Duration.inMilliseconds用法及代碼示例
- Dart Duration.inSeconds用法及代碼示例
- Dart Duration.inHours用法及代碼示例
- Dart Duration構造函數用法及代碼示例
- Dart Duration.toString用法及代碼示例
- Dart DateTime.toUtc用法及代碼示例
- Dart DateTime.minute用法及代碼示例
- Dart DateTime.toIso8601String用法及代碼示例
- Dart DomStringList.first用法及代碼示例
- Dart DateTime.fromMillisecondsSinceEpoch用法及代碼示例
- Dart DateTime.add用法及代碼示例
- Dart DateTime.isAfter用法及代碼示例
- Dart Directory用法及代碼示例
- Dart DoubleLinkedQueue.from用法及代碼示例
- Dart DateTime用法及代碼示例
- Dart DateTime.weekday用法及代碼示例
- Dart DomRectList.length用法及代碼示例
- Dart DateTime.isAtSameMomentAs用法及代碼示例
- Dart DomRectList.first用法及代碼示例
- Dart DomStringList.elementAt用法及代碼示例
- Dart DateTime.hour用法及代碼示例
- Dart DynamicLibraryExtension.lookupFunction用法及代碼示例
注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 Duration class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。