У SystemTime появились границы представимого диапазона

14.12.2025

У типа SystemTime добавлены константы MIN и MAX — наименьшее и наибольшее представимые значения. Конкретные значения зависят от платформы.

Как обходились раньше

Нужно было вычислить нижнюю границу: взять начало отсчёта, вычесть единицу наносекунды и проверить, что вычитание удалось. Или взять конец отсчёта и прибавить. Получался цикл вычислений, который должен оборваться по невозможности дальнейшего вычитания, — но на практике это означало, что границу вычисляли в момент выполнения, а не знали заранее.

Зачем нужно значение

Крайние значения времени встречаются в реальных задачах. При проверке входных данных нужно знать, что значение не выходит за границы типа. При сравнении — что одно из них меньше другого.

Отдельный случай: время до начала отсчёта и время после его конца выражаются отрицательными и очень большими значениями. Проверять их вручную — значит знать платформенные особенности каждой системы, что как раз и обещает константа.

Оригинал

add SystemTime::{MIN, MAX}

Упоминаний: 1 · Просмотров: 3