Розрахунок дати в майбутньому або минулому

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.