РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
457 of 1245 menu

Метод checked_add

Метод checked_add класса SystemTime выполняет сложение текущего момента времени с указанной длительностью типа Duration. В отличие от обычного сложения через оператор +, этот метод возвращает значение типа Option<SystemTime>: Some при успешном сложении и None, если результат выходит за допустимые границы представления времени. Параметром метод принимает длительность, которую нужно прибавить к текущему моменту времени.

Синтаксис

SystemTime::checked_add(duration)

Пример

Давайте создадим момент времени с помощью UNIX_EPOCH и прибавим к нему длительность в 5 секунд:

use std::time::{Duration, SystemTime, UNIX_EPOCH}; fn main() { let time = UNIX_EPOCH; let duration = Duration::from_secs(5); match time.checked_add(duration) { Some(res) => println!("{:?}", res), None => println!("overflow"), } }

Результат выполнения кода:

SystemTime { tv_sec: 5, tv_nsec: 0 }

Пример

Давайте попробуем прибавить очень большую длительность к моменту времени, созданному из UNIX_EPOCH со смещением в 1 секунду, чтобы получить выход за пределы диапазона:

use std::time::{Duration, SystemTime, UNIX_EPOCH}; fn main() { let time = UNIX_EPOCH + Duration::from_secs(1); let duration = Duration::from_secs(u64::MAX); match time.checked_add(duration) { Some(res) => println!("{:?}", res), None => println!("overflow"), } }

Результат выполнения кода:

overflow

Смотрите также

  • класс SystemTime,
    который представляет системное время
  • метод checked_sub,
    который выполняет вычитание длительности с проверкой
  • метод duration_since,
    который возвращает разницу между двумя моментами времени
  • метод elapsed,
    который возвращает время, прошедшее с момента времени
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить