Как узнать текущую дату? - PullRequest
3 голосов
/ 17 июня 2019

Есть ли способ получить текущую дату в Аде?

Я ищу эквивалент C # DateTime.Now(), возвращающий Duration.

У меня есть событие T, и я хочу убедиться, что T началось более 30 секунд назад.

Ответы [ 2 ]

5 голосов
/ 17 июня 2019

Возможно, вы захотите взглянуть на функцию Clock в пакете Ada.Real_Time (см. Также ARM D.8 ).

4 голосов
/ 17 июня 2019

Способ сделать это в Аде, это использовать 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)

...