Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpCrDu 153 of 288 menu
◀ ▶

Сдвиг даты на несколько дней в Rust

Календарный день можно сдвинуть на целое число суток. У крейта для этого свой тип длительности: его задают числом дней. Это не интервал стандартной библиотеки, где длина паузы задана секундами.

Безопаснее не складывать дату с длительностью знаком плюс напрямую, а вызвать проверенное прибавление: оно вернет новую дату или пустой вариант, если результат вышел за пределы календаря.

Соберем исходный день и прибавим три суток:

use chrono::{Duration, NaiveDate}; fn main() { if let Some(start) = NaiveDate::from_ymd_opt(2026, 10, 2) { if let Some(later) = start.checked_add_signed(Duration::days(3)) { println!("{}", later); } } }

На экране 2026-10-05. Три календарных дня прошли от второго октября до пятого.

Тот же прием с вычитанием через отрицательную длительность:

use chrono::{Duration, NaiveDate}; fn main() { if let Some(start) = NaiveDate::from_ymd_opt(2026, 10, 2) { if let Some(earlier) = start.checked_add_signed(Duration::days(-1)) { println!("{}", earlier); } } }

Дана дата текстом:

let date = "2026-03-01";

Прибавьте 7 суток и выведите получившийся день.

Дана дата текстом:

let date = "2024-01-10";

Отнимите 9 суток и выведите результат.

Скажите, зачем для сдвига даты лучше брать проверенное прибавление, а не обычное сложение знаком плюс.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить