Метод 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,
который возвращает время, прошедшее с момента времени