{

How to Comparing only dates of DateTimes in Dart or Flutter Programming| Dart by Example


In Dart, the DateTime object stores Date and Time data.

Suppose if you want to compare the dates of two DateTime objects, The month, day, and year of two dates are equal.

How to Compare only dates of DateTimes in Dart?

Create three Date time objects,

  • First object date1 is using now() - 2022-04-10 20:48:56.354
  • Second object date2 created by adding duration of 10 seconds - 2022-04-10 20:49:06.354
  • Third object date3 created by adding duration of 10 days - 2022-04-20 20:48:56.354
  • date1 and date2 are equal, and date1,and date3 or date2 and date3 are not equal

There are multiple ways we can check only the Dates of a DateTime object.

  • Compare year, month, and day using extension

In this example, Created an extension method that returns true if two objects are equal.

Here is an example program

void main() {
  DateTime date1 = DateTime.now();
  print(date1); //2022-04-10 20:48:56.354


  var date2 = date1.add(Duration(seconds: 10));
  print(date2); //2022-04-10 20:49:06.354

  var date3 = date1.add(Duration(days: 10));
  print(date3); //2022-04-20 20:48:56.354


  print(date1.isDateEqual(date2)); // true
  print(date1.isDateEqual(date3)); // false

  print(date1.isDateEqual(date3)); // false
}

extension CompareDates on DateTime {
  bool isDateEqual(DateTime date2) {
    return year == date2.year && month == date2.month && day == date2.day;
  }
}


Output:

2022-04-10 20:48:56.354
2022-04-10 20:49:06.354
2022-04-20 20:48:56.354
true
false
false
  • use the difference and inDays method

This example finds the difference between two date objects

Duration difference(DateTime other)

It returns the Duration object, calls inDays that returns a number of days, checks days are zero or not.

Here is an example program.

void main() {
  DateTime date1 = DateTime.now();
  print(date1); //2022-04-10 20:48:56.354

  var date2 = date1.add(Duration(seconds: 10));
  print(date2); //2022-04-10 20:49:06.354

  var date3 = date1.add(Duration(days: 10));
  print(date3); //2022-04-20 20:48:56.354

  print(date1.difference(date2).inDays == 0); // true
  print(date1.difference(date3).inDays == 0); // false

  print(date2.difference(date3).inDays == 0); // false
}

Output:

2022-04-10 20:48:56.354
2022-04-10 20:49:06.354
2022-04-20 20:48:56.354
true
false
false

Conclusion

In this tutorial, several ways to find and compare whether two dates are equal or not by ignoring time fields.

THE BEST NEWSLETTER ANYWHERE
Join 6,000 subscribers and get a daily digest of full stack tutorials delivered to your inbox directly.No spam ever. Unsubscribe any time.

Similar Posts
Subscribe
You'll get a notification every time a post gets published here.





Related posts

Dart| Flutter How to: Read pubspec.yaml attributes (version) with examples

How to Create and build a Singleton Class Dart or Flutter example| Dart By Example

What is the difference between var and dynamic and final in dart?| Flutter By Example

How to: Check if Phone number is valid or not in Dart| Flutter By Example

Dart| Flutter How to read an image from a disk and resize a file

Dart/Flutter: How to write setter and getter fields or members variables in a class with Example

Dart| Flutter How to get extension name and MIME type of a file with example