Flutterは2つの日付間の時間差を計算します
私たちの開発では、2つの日付の差が何日であるかの計算に遭遇した場合、それを取得するためにどのような方法を使用する必要がありますか?2つの日付の差が何時間、分、秒であるかを知る必要がある場合、どのように計算しますか?
実際、Flutterでは、日付と時刻の差を計算するのは非常に簡単です。差関数を使用する必要があります。次の例で説明します。
例
1. 2つの日付の差は何日ですか?
var startDate = new DateTime(2020, 12, 20);
var endDate = new DateTime.now();
var days = endDate.difference(startDate).inDays;
2. 2つの日付の差は何時間ですか?
var startDate = new DateTime(2020, 12, 20);
var endDate = new DateTime.now();
var hours = endDate.difference(startDate).inHours;
3. 2つの日付の差は何分ですか?
var startDate = new DateTime(2020, 12, 20);
var endDate = new DateTime.now();
var minutes = endDate.difference(startDate).inMinutes;
皆さん、とても簡単ですか?差分法を使用している限り、すべての時間単位で差分を取得できます。
ソースコード分析
実際、DateTimeのdifferenceメソッドはDurationオブジェクトを返します。
デュレーションとは何ですか?
期間は、27日、4時間、12分、3秒などの期間(差の値)を表すために使用されるクラスです。期間は、多くの時間単位変換方法と時間の加算および減算計算方法を提供します。これは非常に便利です。
期間は時差を表し、負の数になる可能性があることに注意してください。
そのプロパティ:
final int _duration;
これは2回の差であり、単位はマイクロ秒であり、最もコアな属性です。
InDays、inHours、inMinutesなどはすべてDurationのgetメソッドであり、結果は_duration属性を対応する時間単位で除算することによって内部的に取得されます。
たとえば、日数は次のように計算されます。
int get inDays => _duration ~/ Duration.microsecondsPerDay;
とても便利で、アニメーションなど色々なシーンでデュレーションが使えます。
** PS:よりエキサイティングなコンテンツについてはチェックしてください-> 「FlutterDevelopment」
** PS:よりエキサイティングなコンテンツについてはチェックしてください-> 「FlutterDevelopment」
** PS:よりエキサイティングなコンテンツについてはチェックしてください-> 「フラッター開発」