Сравнение двух дат в Rust
Две наивные даты сравнивают так же, как
числа: знаки <, > и ==
опираются на порядок в календаре. Сначала
нужно получить оба значения из чисел или
из текста.
Соберем две даты и выведем, что первая раньше второй:
use chrono::NaiveDate;
fn main() {
let a = NaiveDate::from_ymd_opt(2026, 10, 2);
let b = NaiveDate::from_ymd_opt(2026, 10, 5);
if let (Some(d1), Some(d2)) = (a, b) {
println!("{}", d1 < d2);
}
}
На экране true. Второе октября
действительно наступает раньше пятого.
Тот же прием с равными днями:
use chrono::NaiveDate;
fn main() {
let a = NaiveDate::from_ymd_opt(2026, 1, 1);
let b = NaiveDate::from_ymd_opt(2026, 1, 1);
if let (Some(d1), Some(d2)) = (a, b) {
println!("{}", d1 == d2);
}
}
Дана дата текстом:
let date = "2025-12-31";
Сравните ее с 2026-01-01 и выведите,
что первая строка дает более ранний день.
Даны две строки 2024-06-15 и
2024-06-10. Получите обе даты
и выведите, какая позже.
Дана дата текстом:
let date = "2023-05-05";
Проверьте, что она не позже 2023-05-05,
и выведите логический результат.