Способ сделать это в Аде, это использовать Ada.Calendar
, который предоставляет функцию Clock
, возвращающую текущий Time
:
declare
use type Ada.Calendar.Time;
Now : constant Ada.Calendar.Time := Ada.Calendar.Clock;
Interval : constant Duration := 30.0;
begin
if Now > Start_Time_Of_T + Interval then
Ada.Text_IO.Put_Line("Event T took too long");
end if;
end;
В зависимости от требуемой точности, вы можете посмотреть на Ada.Real_Time
пакет
вместо. (Использование аналогично, но потребуется преобразование из Duration
в Time_Span
)