Чтобы вычесть даты во Flutter, вы можете использовать класс Duration, который представляет промежуток времени. Вот несколько методов, которые вы можете использовать:
Метод 1: использование метода разницы класса DateTime
DateTime date1 = DateTime(2023, 12, 31);
DateTime date2 = DateTime(2023, 12, 25);
Duration difference = date1.difference(date2);
print(difference.inDays); // Output: 6
Метод 2: использование метода вычитания класса DateTime
DateTime date1 = DateTime(2023, 12, 31);
DateTime date2 = DateTime(2023, 12, 25);
Duration difference = date1.subtract(date2);
print(difference.inDays); // Output: 6
Метод 3. Использование метода различия пакета intl.
Сначала добавьте пакет intlв файл pubspec.yaml:
dependencies:
flutter:
sdk: flutter
intl: ^0.17.0
Затем вы можете использовать метод differenceиз класса DateFormat:
import 'package:intl/intl.dart';
DateTime date1 = DateTime(2023, 12, 31);
DateTime date2 = DateTime(2023, 12, 25);
Duration difference = DateFormat("yyyy-MM-dd").parse(date1.toString()).difference(DateFormat("yyyy-MM-dd").parse(date2.toString()));
print(difference.inDays); // Output: 6
Метод 4. Использование свойстваdaysSinceEpoch
DateTime date1 = DateTime(2023, 12, 31);
DateTime date2 = DateTime(2023, 12, 25);
int difference = date1.millisecondsSinceEpoch ~/ Duration.millisecondsPerDay - date2.millisecondsSinceEpoch ~/ Duration.millisecondsPerDay;
print(difference); // Output: 6