Rust:
Beregning av en dato i fremtiden eller fortiden
Hvordan Gjøre Det:
Rust bruker chrono
biblioteket for dato-aritmetikk. La oss se på et eksempel:
use chrono::{DateTime, Duration, Utc};
fn main() {
let now = Utc::now();
println!("Nå: {}", now);
// Legg til 10 dager til gjeldende tidspunkt
let future_date = now + Duration::days(10);
println!("Fremtidig dato: {}", future_date);
// Trekk fra 10 dager fra gjeldende tidspunkt
let past_date = now - Duration::days(10);
println!("Fortidens dato: {}", past_date);
}
Output kan være som dette, avhengig av når du kjører koden:
Nå: 2023-04-09T17:40:42.135768500Z
Fremtidig dato: 2023-04-19T17:40:42.135768500Z
Fortidens dato: 2023-03-30T17:40:42.135768500Z
Dypdykk
Dato-aritmetikk er ikke nytt; kalender-systemer har eksistert i tusenvis av år. I dataprogrammering, er behovet for å manipulere datoer vanlig. Frister, planlegging og historikklogging er vanlige scenarier.
Alternativene til chrono
er standard biblioteket std::time
og noen tredjepartsbiblioteker som time
. chrono
tilbyr imidlertid en god balanse mellom funksjonalitet og brukervennlighet. Implementasjonsdetaljene rundt dato-aritmetikk tar hensyn til skuddår, tidssoner, og andre kompleksiteter i tidsberegning.
For å jobbe med tid på tvers av forskjellige tidssoner, har chrono
datatyper som DateTime<FixedOffset>
og DateTime<Local>
i tillegg til DateTime<Utc>
.
Når man legger til eller trekker fra dager, kan man også bruke Duration
til å representere timer, minutter og sekunder for mer presise operasjoner.