Расчёт даты в будущем или прошлом

Dart:
Расчёт даты в будущем или прошлом

Как:

Dart предоставляет надежную поддержку для манипулирования датами через свой класс DateTime. Вот как вы можете вычислить будущие или прошедшие даты, используя нативный Dart, без необходимости в сторонних библиотеках.

Вычисление Будущей Даты

Чтобы рассчитать дату в будущем, вы создаете объект DateTime и используете метод add с желаемой продолжительностью.

DateTime today = DateTime.now();
Duration tenDays = Duration(days: 10);
DateTime futureDate = today.add(tenDays);

print(futureDate); // Вывод: 2023-04-21 14:22:35.123456 (пример вывода, зависит от текущей даты и времени)

Вычисление Прошедшей Даты

Для вычисления даты в прошлом, используйте метод subtract на объекте DateTime с необходимой продолжительностью.

DateTime today = DateTime.now();
Duration fifteenDaysAgo = Duration(days: 15);
DateTime pastDate = today.subtract(fifteenDaysAgo);

print(pastDate); // Вывод: 2023-03-27 14:22:35.123456 (пример вывода, зависит от текущей даты и времени)

Использование Сторонних Библиотек

Хотя нативные возможности Dart для манипулирования датами мощные, вы можете столкнуться с необходимостью в более конкретных операциях, таких как более легкий разбор или форматирование дат, или выполнение сложных вычислений. В таких случаях пакет time может быть очень полезным.

Сначала добавьте time в свои зависимости pubspec.yaml:

dependencies:
  time: ^2.0.0

Затем вы можете использовать его для выполнения аналогичных вычислений с улучшенной читаемостью:

import 'package:time/time.dart';

void main() {
  DateTime today = DateTime.now();

  // Вычисление будущей даты
  DateTime futureDate = today + 10.days;
  print(futureDate); // Формат вывода: 2023-04-21 14:22:35.123456

  // Вычисление прошедшей даты
  DateTime pastDate = today - 15.days;
  print(pastDate); // Формат вывода: 2023-03-27 14:22:35.123456
}

Эти примеры иллюстрируют базовые манипуляции с датами в Dart, включая добавление и вычитание времени к текущей дате или из нее, демонстрируя, как легко можно управлять датами в приложениях Dart.