Files
lace/1-base/lace/source/lace-time.ads
2022-07-31 17:34:54 +10:00

58 lines
1.8 KiB
Ada

package lace.Time
--
-- Time of day.
--
is
type Hours is range 0 .. 23;
type Minutes is range 0 .. 59;
type Seconds is range 0 .. 59;
type milliSeconds is range 0 .. 999;
type microSeconds is range 0 .. 999_999;
function to_milliSeconds (From : microSeconds) return milliSeconds;
function to_microSeconds (From : milliSeconds) return microSeconds;
type Item is
record
Hours : Time.Hours;
Minutes : Time.Minutes;
Seconds : Time.Seconds;
microSeconds : Time.microSeconds;
end record;
zero_Time : constant Time.item;
function to_Duration (From : in Time.item) return Duration;
function to_Time (From : in standard.Duration) return Time.item;
function to_Time (Hours : in Time.Hours := 0;
Minutes : in Time.Minutes := 0;
Seconds : in Time.Seconds := 0;
microSeconds : in Time.microSeconds := 0) return Time.item;
function Image (Time : in Item) return String; -- Format: HH:MM:SS.mmmmmm
function Value (Image : in String) return Time.item;
Overflow : exception;
Underflow : exception;
function "+" (Left, Right : in Time.item) return Time.item;
function "-" (Left, Right : in Time.item) return Time.item;
function "+" (Left : in Time.item; Right : in Duration) return Time.item;
function "-" (Left : in Time.item; Right : in Duration) return Time.item;
private
zero_Time : constant Time.item := (Hours => 0,
Minutes => 0,
Seconds => 0,
microSeconds => 0);
end lace.Time;