Calcolare una data nel futuro o nel passato

Dart:
Calcolare una data nel futuro o nel passato

Come fare:

Dart fornisce un robusto supporto per la manipolazione delle date attraverso la sua classe DateTime. Ecco come puoi calcolare date future o passate usando Dart nativo, senza la necessità di librerie di terze parti.

Calcolare una Data Futura

Per calcolare una data futura, crei un oggetto DateTime e usi il metodo add con la durata desiderata.

DateTime oggi = DateTime.now();
Duration dieciGiorni = Duration(days: 10);
DateTime dataFutura = oggi.add(dieciGiorni);

print(dataFutura); // Output: 2023-04-21 14:22:35.123456 (output di esempio, dipende dalla data e dall'ora correnti)

Calcolare una Data Passata

Per calcolare una data nel passato, usi il metodo subtract su un oggetto DateTime con la durata necessaria.

DateTime oggi = DateTime.now();
Duration quindiciGiorniFa = Duration(days: 15);
DateTime dataPassata = oggi.subtract(quindiciGiorniFa);

print(dataPassata); // Output: 2023-03-27 14:22:35.123456 (output di esempio, dipende dalla data e dall'ora correnti)

Usare Librerie di Terze Parti

Nonostante le capacità native di Dart per la manipolazione delle date siano potenti, potresti trovarti nella necessità di operazioni più specifiche, come analizzare o formattare le date più facilmente, o eseguire calcoli complessi. In tali casi, il pacchetto time può essere molto utile.

Prima, aggiungi time alle tue dipendenze pubspec.yaml:

dependencies:
  time: ^2.0.0

Poi, puoi usarlo per eseguire calcoli simili con una maggiore leggibilità:

import 'package:time/time.dart';

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

  // Calcolare una data futura
  DateTime dataFutura = oggi + 10.days;
  print(dataFutura); // Formato dell'output: 2023-04-21 14:22:35.123456

  // Calcolare una data passata
  DateTime dataPassata = oggi - 15.days;
  print(dataPassata); // Formato dell'output: 2023-03-27 14:22:35.123456
}

Questi esempi illustrano manipolazioni basilari delle date in Dart, inclusi l’aggiunta e la sottrazione di tempo da o verso una data corrente, dimostrando quanto sia agevole gestire le date nelle applicazioni Dart.