Dart DateTimeクラスのdifference()メソッドについてメモ書き。
時刻と時刻の差分をDuration型で返す。
Duration型とは期間を表すクラス。”inDays”、”inHours”等プロパティが使える。
簡単なコードを書いて確認。
void main() {
// 現在時刻
final now = DateTime.now();
// 2023-03-16
final day20230316 = DateTime.parse('2023-03-16');
// 現在時刻を出力
print(now);
// 2023-03-16を出力
print(day20230316);
// ①現在時刻と2023-03-16の差分を出力
print(now.difference(day20230316));
// ②差分を日で出力
print(now.difference(day20230316).inDays);
// ③差分を時間で出力
print(now.difference(day20230316).inHours);
// ④差分を分で出力
print(now.difference(day20230316).inMinutes);
// ⑤差分を秒で出力
print(now.difference(day20230316).inSeconds);
// ⑥過去の日付をベースに差分を秒で出力
print(day20230316.difference(now).inSeconds);
}
以下1行目の現在時刻(2023年3月17日)と2行目の過去日付(2023年3月16日)で比較。
2023-03-17 22:23:52.591120
2023-03-16 00:00:00.000
①現在時刻と2023年3月16日の差分を出力。
「print(now.difference(day20230316));」の実行結果。
46:23:52.591120
②差分を”日”で出力。
「print(now.difference(day20230316).inDays);」の実行結果。
1
③差分を”時間”で出力。
「print(now.difference(day20230316).inHours);」の実行結果。
46
④差分を”分”で出力。
「print(now.difference(day20230316).inMinutes);」の実行結果。
2783
⑤差分を”秒”で出力。
「print(now.difference(day20230316).inSeconds);」の実行結果。
167032
⑥過去の日付をベースに差分を”秒”で出力。「過去日付 – 現在時刻」になるのでマイナスになる。
「print(day20230316.difference(now).inSeconds);」の実行結果。
-167032
コメント