Rust:
Calcul d'une date future ou passée
Comment faire :
use chrono::{Duration, Utc};
fn main() {
let today = Utc::now();
let five_days_later = today + Duration::days(5);
let five_days_before = today - Duration::days(5);
println!("Aujourd'hui: {}", today.format("%d-%m-%Y %H:%M:%S"));
println!("Dans cinq jours: {}", five_days_later.format("%d-%m-%Y %H:%M:%S"));
println!("Il y a cinq jours: {}", five_days_before.format("%d-%m-%Y %H:%M:%S"));
}
Résultats:
Aujourd'hui: 02-04-2023 14:20:15
Dans cinq jours: 07-04-2023 14:20:15
Il y a cinq jours: 28-03-2023 14:20:15
Plongée en profondeur
Avant, on manipulait les dates en C avec time.h
, qui était délicat. Rust offre la crate chrono
pour une meilleure gestion des dates et du temps. Alternativement, on peut utiliser la bibliothèque standard, mais elle est plus limitée. chrono
gère les fuseaux horaires, précisions sub-secondaires et facilite les calculs.
Les détails d’implémentation sont importants car les dates gèrent les années bissextiles, les fuseaux horaires et d’autres subtilités. chrono
abstrait cela, permettant des manipulations fiables et moins d’erreurs.
Voir aussi
- Documentation de
chrono
: https://docs.rs/chrono/ - Rust CookBook, manipulation des dates et temps: https://rust-lang-nursery.github.io/rust-cookbook/datetime.html
- Rust by Example, traitant du temps: https://doc.rust-lang.org/rust-by-example/std_misc/datetime.html