Dart:
Kahden päivämäärän vertaaminen
Miten:
Dartissa voit verrata päivämääriä käyttämällä DateTime
-luokkaa, joka tarjoaa suoria vertailumetodeja kuten isBefore
, isAfter
ja isAtSameMomentAs
. Lisäksi päivämäärien välisen eron voi määrittää käyttämällä difference()
-metodia, joka antaa Duration
-objektin, joka yksityiskohtaisesti kertoo ajanjakson kahden aikapisteen välillä.
Tässä on yksinkertainen esimerkki näiden käsitteiden havainnollistamiseksi:
void main() {
DateTime eventStart = DateTime(2023, 5, 15);
DateTime eventEnd = DateTime(2023, 5, 20);
// Tarkistetaan, onko yksi päivämäärä ennen toista
if (eventStart.isBefore(eventEnd)) {
print("Tapahtuman alkamispäivämäärä on ennen tapahtuman päättymispäivämäärää.");
}
// Tarkistetaan, ovatko kaksi päivämäärää samat
if (!eventStart.isAtSameMomentAs(eventEnd)) {
print("Aloituspäivämäärä ja päättymispäivämäärä eivät ole samat.");
}
// Lasketaan kahden päivämäärän välinen ero
Duration eventDuration = eventEnd.difference(eventStart);
print("Tapahtuma kestää ${eventDuration.inDays} päivää.");
}
/*
Tuloste:
Tapahtuman alkamispäivämäärä on ennen tapahtuman päättymispäivämäärää.
Aloituspäivämäärä ja päättymispäivämäärä eivät ole samat.
Tapahtuma kestää 5 päivää.
*/
Edistyneempiin päivämäärämanipulaatioihin, kuten muotoilumuunnoksiin, saatat löytää DateFormat
-luokan intl
-paketista hyödyllisenä. Alla on esimerkki, joka näyttää, kuinka sitä käytetään päivämäärien muotoiluun ja vertailemiseen:
Ensiksi, sisällytä intl
-paketti pubspec.yaml
-tiedostoosi:
dependencies:
intl: ^0.17.0
Sitten käytä sitä seuraavasti:
import 'package:intl/intl.dart';
void main() {
DateTime departureDate = DateTime(2023, 5, 15);
DateTime returnDate = DateTime.parse('2023-05-20');
// Päivämäärien muotoilu
var formatter = DateFormat('yyyy-MM-dd');
print("Lähtö: ${formatter.format(departureDate)}");
print("Paluu: ${formatter.format(returnDate)}");
// Vertaa käyttäen muotoiltuja merkkijonoja
if (formatter.format(departureDate) == formatter.format(returnDate)) {
print("Lähtö- ja paluupäivämäärät ovat samat.");
} else {
print("Lähtö- ja paluupäivämäärät ovat erilaiset.");
}
}
/*
Tuloste:
Lähtö: 2023-05-15
Paluu: 2023-05-20
Lähtö- ja paluupäivämäärät ovat erilaiset.
*/
Tämä esimerkki esittelee, kuinka vertailla kahta DateTime
-objektia sekä suoraan että käyttämällä muotoiltuja merkkijonoja vertailuissa, joissa tarvitsee jättää huomiotta tiettyjä komponentteja, kuten aika.