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

Метод checked_sub

Метод checked_sub класса Instant выполняет вычитание указанного промежутка времени Duration из текущего момента времени. Параметром метод принимает Duration, который нужно вычесть. Метод возвращает Some(Instant), если вычитание прошло успешно, и None в случае переполнения (когда результат выходит за допустимые границы типа).

Синтаксис

instant.checked_sub(duration)

Пример

Давайте создадим момент времени и вычтем из него промежуток в 5 секунд:

use std::time::{Duration, Instant}; fn main() { let now = Instant::now(); let res = now.checked_sub(Duration::from_secs(5)); println!("{:?}", res.is_some()); }

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

true

Пример

Давайте попробуем вычесть из момента времени слишком большой промежуток, чтобы вызвать переполнение:

use std::time::{Duration, Instant}; fn main() { let now = Instant::now(); let res = now.checked_sub(Duration::from_secs(u64::MAX)); println!("{:?}", res.is_none()); }

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

true

Пример

Давайте вычтем промежуток и получим конкретный момент времени в прошлом:

use std::time::{Duration, Instant}; fn main() { let now = Instant::now(); let past = now.checked_sub(Duration::from_secs(10)).unwrap(); let diff = now.duration_since(past); println!("{:?}", diff.as_secs()); }

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

10

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

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