oz10
oz10

Reputation: 158424

How can you print an Ada.Calendar.Time variable in Ada?

Need to know how to print a Time variable in Ada. I assume there is no portable way because Time is implementation defined. I've already seen the GNAT.Calendar.Formatting package available under GNAT, I'd also be interested in a GHS for VME.

Upvotes: 1

Views: 4995

Answers (4)

John Leimon
John Leimon

Reputation: 1091

Here's an example that displays the date and time using the GNAT.Calendar.Time_IO package:

with ada.calendar;
with gnat.calendar.time_io;

procedure display_time is
begin
  gnat.calendar.time_io.put_time(ada.calendar.clock, "Date: %Y/%m/%d Time: %H:%M:%S");
end display_time;

Date/time format options are available here: https://en.wikibooks.org/wiki/Ada_Programming/Libraries/GNAT.Calendar.Time_IO

Upvotes: 1

YermoungDer
YermoungDer

Reputation: 121

See package "Ada.Calendar.Formatting" function "Image" for Ada2005. If you have an Ada95 compiler you could and this package isn't available, try my implementation from here

This was written using GNAT 3.15p, so pretty old.

Upvotes: 3

T.E.D.
T.E.D.

Reputation: 44804

Generally what I do is use Calendar.Split and then do a 'image on the parts I care about.

Upvotes: 1

Marc C
Marc C

Reputation: 8522

Sure, time output can be portable, Ada.Calendar contains standard functions that extract the components of a time value, so it's straightforward to put together your own conversion package.

For example, here's one. One just needs to either create a minor addition to create a "Formatted_Time" record for a given Time value (see the package's Get_Time() function for guidance), or make Main_Formatter() visible in the package spec.

Upvotes: 1

Related Questions