Dart 日付が過去の日付であるかを判定する

Dart 日付が過去の日付であるかを判定する

Dartで、日付が過去の日付であるかを判定するコードを記述してます。「isBefore」で2つの日付を比較することで可能です。同じ日付の場合は、過去でないので「false」が返ります。

環境

  • OS windows11 home
  • Dart 2.18.4

未来の日付であるかを判定

未来の日付であるかを判定するには、「isBefore」を使用します。

日付1.isBefore(日付2)

※日付1が日付2より過去であれば「true」が、そうでなければ「false」が返ります。同じ日付の場合は「false」になります

実際に、判定してみます。

void main() {
  var dt1 = DateTime(2022, 12, 10);
  var dt2 = DateTime(2022, 12, 11);
  var dt3 = DateTime(2022, 12, 09);
  var dt4 = DateTime(2022, 12, 10);

  print(dt1.isBefore(dt2)); // true
  print(dt1.isBefore(dt3)); // false
  print(dt1.isBefore(dt4)); // false
}

実行結果を見ると、判定されていることが確認できます。

未来の日付であるかを判定

逆に、過去の日付であるかを判定するには、「isAfter」を使用します。

void main() {
  var dt1 = DateTime(2022, 12, 10);
  var dt2 = DateTime(2022, 12, 11);
  var dt3 = DateTime(2022, 12, 09);
  var dt4 = DateTime(2022, 12, 10);

  print(dt1.isAfter(dt2)); // false
  print(dt1.isAfter(dt3)); // true
  print(dt1.isAfter(dt4)); // false
}

同じ日付であるかを判定

同じ日付であるかを判定するには、「isAtSameMomentAs」を使用します。

void main() {
  var dt1 = DateTime(2022, 12, 10);
  var dt2 = DateTime(2022, 12, 11);
  var dt3 = DateTime(2022, 12, 09);
  var dt4 = DateTime(2022, 12, 10);

  print(dt1.isAtSameMomentAs(dt2)); // false
  print(dt1.isAtSameMomentAs(dt3)); // true
  print(dt1.isAtSameMomentAs(dt4)); // false
}