Порівняння двох дат

Dart:
Порівняння двох дат

Як:

У Dart ви можете порівнювати дати за допомогою класу DateTime, який пропонує методи, такі як isBefore, isAfter та isAtSameMomentAs для прямого порівняння. Крім того, різницю між датами можна визначити за допомогою методу difference(), який надає об’єкт Duration, деталізуючи проміжок часу між двома точками у часі.

Ось простий приклад, що ілюструє ці концепції:

void main() {
  DateTime eventStart = DateTime(2023, 5, 15);
  DateTime eventEnd = DateTime(2023, 5, 20);
  
  // Перевірка, чи одна дата передує іншій
  if (eventStart.isBefore(eventEnd)) {
    print("Дата початку події є до дати завершення події.");
  }

  // Перевірка, чи дві дати є однаковими
  if (!eventStart.isAtSameMomentAs(eventEnd)) {
    print("Дата початку та завершення події не співпадають.");
  }
  
  // Розрахунок різниці між двома датами
  Duration eventDuration = eventEnd.difference(eventStart);
  print("Подія триває ${eventDuration.inDays} днів.");
}

/*
Вивід:
Дата початку події є до дати завершення події.
Дата початку та завершення події не співпадають.
Подія триває 5 днів.
*/

Для більш розширеної маніпуляції з датами, такої як конвертація форматів, може бути корисним клас DateFormat з пакету intl. Нижче представлений приклад, який демонструє як використовувати його для форматування та порівняння дат:

Спочатку включіть пакет intl у ваш pubspec.yaml:

dependencies:
  intl: ^0.17.0

Потім використовуйте його таким чином:

import 'package:intl/intl.dart';

void main() {
  DateTime departureDate = DateTime(2023, 5, 15);
  DateTime returnDate = DateTime.parse('2023-05-20');

  // Форматування дат
  var formatter = DateFormat('yyyy-MM-dd');
  print("Відправлення: ${formatter.format(departureDate)}");
  print("Повернення: ${formatter.format(returnDate)}");

  // Порівняння за допомогою відформатованих рядків
  if (formatter.format(departureDate) == formatter.format(returnDate)) {
    print("Дата відправлення та повернення співпадають.");
  } else {
    print("Дата відправлення та повернення відрізняються.");
  }
}

/*
Вивід:
Відправлення: 2023-05-15
Повернення: 2023-05-20
Дата відправлення та повернення відрізняються.
*/

Цей приклад демонструє, як порівнювати два об’єкти DateTime безпосередньо та за допомогою відформатованих рядків для порівнянь, які потребують ігнорування певних компонентів, наприклад, часу.