如何获取当前日期?

How to get current date?

有没有办法在 Ada 中获取当前日期?

我正在寻找与 C# DateTime.Now() 返回持续时间的等效项。

我有一个事件 T,我想确定 T 是否在 30 秒前开始。

在 Ada 中执行此操作的方法是使用 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

您可能想看看包 Ada.Real_Time 中的 Clock 函数(另请参阅 ARM D.8)。