У SystemTime появились границы представимого диапазона
14.12.2025У типа SystemTime добавлены константы MIN и MAX — наименьшее и наибольшее представимые значения. Конкретные значения зависят от платформы.
Как обходились раньше
Нужно было вычислить нижнюю границу: взять начало отсчёта, вычесть единицу наносекунды и проверить, что вычитание удалось. Или взять конец отсчёта и прибавить. Получался цикл вычислений, который должен оборваться по невозможности дальнейшего вычитания, — но на практике это означало, что границу вычисляли в момент выполнения, а не знали заранее.
Зачем нужно значение
Крайние значения времени встречаются в реальных задачах. При проверке входных данных нужно знать, что значение не выходит за границы типа. При сравнении — что одно из них меньше другого.
Отдельный случай: время до начала отсчёта и время после его конца выражаются отрицательными и очень большими значениями. Проверять их вручную — значит знать платформенные особенности каждой системы, что как раз и обещает константа.
Оригинал
add SystemTime::{MIN, MAX}
Упоминаний: 1 · Просмотров: 3