Dart:
Beräkna ett datum i framtiden eller förflutna
Hur man gör:
Dart erbjuder robust stöd för datummanipulation genom sin DateTime
-klass. Så här kan du beräkna framtida eller förflutna datum med hjälp av native Dart, utan att behöva tredjepartsbibliotek.
Beräkna ett framtida datum
För att beräkna ett datum i framtiden skapar du ett DateTime
-objekt och använder add
-metoden med den önskade varaktigheten.
DateTime today = DateTime.now();
Duration tenDays = Duration(days: 10);
DateTime futureDate = today.add(tenDays);
print(futureDate); // Output: 2023-04-21 14:22:35.123456 (exempelutmatning, beror på aktuellt datum och tid)
Beräkna ett förflutet datum
För att beräkna ett datum i det förflutna använder du subtract
-metoden på ett DateTime
-objekt med den nödvändiga varaktigheten.
DateTime today = DateTime.now();
Duration fifteenDaysAgo = Duration(days: 15);
DateTime pastDate = today.subtract(fifteenDaysAgo);
print(pastDate); // Output: 2023-03-27 14:22:35.123456 (exempelutmatning, beror på aktuellt datum och tid)
Använda tredjepartsbibliotek
Även om Darts inhemska kapaciteter för datummanipulation är kraftfulla, kan du finna dig själv i behov av mer specifika operationer, som att enklare tolka eller formatera datum, eller utföra komplexa beräkningar. I sådana fall kan time
-paketet vara mycket användbart.
Lägg först till time
i dina pubspec.yaml
-beroenden:
dependencies:
time: ^2.0.0
Sedan kan du använda det för att utföra liknande beräkningar med förbättrad läsbarhet:
import 'package:time/time.dart';
void main() {
DateTime today = DateTime.now();
// Beräkna ett framtida datum
DateTime futureDate = today + 10.days;
print(futureDate); // Utmatningsformat: 2023-04-21 14:22:35.123456
// Beräkna ett förflutet datum
DateTime pastDate = today - 15.days;
print(pastDate); // Utmatningsformat: 2023-03-27 14:22:35.123456
}
Dessa exempel illustrerar grundläggande datummanipulationer i Dart, inklusive att lägga till och dra ifrån tid till eller från ett aktuellt datum, och visar hur enkelt datum kan hanteras i Dart-applikationer.