+++ /dev/null
-------------------------------------------------------------------------------
--- --
--- GNAT RUN-TIME COMPONENTS --
--- --
--- A D A . C A L E N D A R --
--- --
--- S p e c --
--- --
--- $Revision: 1.1.16.2 $
--- --
--- Copyright (C) 1992-1997 Free Software Foundation, Inc. --
--- --
--- This specification is derived from the Ada Reference Manual for use with --
--- GNAT. The copyright notice above, and the license provisions that follow --
--- apply solely to the contents of the part following the private keyword. --
--- --
--- GNAT is free software; you can redistribute it and/or modify it under --
--- terms of the GNU General Public License as published by the Free Soft- --
--- ware Foundation; either version 2, or (at your option) any later ver- --
--- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
--- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
--- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
--- for more details. You should have received a copy of the GNU General --
--- Public License distributed with GNAT; see file COPYING. If not, write --
--- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
--- MA 02111-1307, USA. --
--- --
--- As a special exception, if other files instantiate generics from this --
--- unit, or you link this unit with other files to produce an executable, --
--- this unit does not by itself cause the resulting executable to be --
--- covered by the GNU General Public License. This exception does not --
--- however invalidate any other reasons why the executable file might be --
--- covered by the GNU Public License. --
--- --
--- GNAT was originally developed by the GNAT team at New York University. --
--- Extensive contributions were provided by Ada Core Technologies Inc. --
--- --
-------------------------------------------------------------------------------
-
-package Ada.Calendar is
-
- type Time is private;
-
- -- Declarations representing limits of allowed local time values. Note that
- -- these do NOT constrain the possible stored values of time which may well
- -- permit a larger range of times (this is explicitly allowed in Ada 95).
-
- subtype Year_Number is Integer range 1901 .. 2099;
- subtype Month_Number is Integer range 1 .. 12;
- subtype Day_Number is Integer range 1 .. 31;
-
- subtype Day_Duration is Duration range 0.0 .. 86_400.0;
-
- function Clock return Time;
-
- function Year (Date : Time) return Year_Number;
- function Month (Date : Time) return Month_Number;
- function Day (Date : Time) return Day_Number;
- function Seconds (Date : Time) return Day_Duration;
-
- procedure Split
- (Date : Time;
- Year : out Year_Number;
- Month : out Month_Number;
- Day : out Day_Number;
- Seconds : out Day_Duration);
-
- function Time_Of
- (Year : Year_Number;
- Month : Month_Number;
- Day : Day_Number;
- Seconds : Day_Duration := 0.0)
- return Time;
-
- function "+" (Left : Time; Right : Duration) return Time;
- function "+" (Left : Duration; Right : Time) return Time;
- function "-" (Left : Time; Right : Duration) return Time;
- function "-" (Left : Time; Right : Time) return Duration;
-
- function "<" (Left, Right : Time) return Boolean;
- function "<=" (Left, Right : Time) return Boolean;
- function ">" (Left, Right : Time) return Boolean;
- function ">=" (Left, Right : Time) return Boolean;
-
- Time_Error : exception;
-
-private
- pragma Inline (Clock);
-
- pragma Inline (Year);
- pragma Inline (Month);
- pragma Inline (Day);
-
- pragma Inline ("+");
- pragma Inline ("-");
-
- pragma Inline ("<");
- pragma Inline ("<=");
- pragma Inline (">");
- pragma Inline (">=");
-
- -- Time is represented as a signed duration from the base point which is
- -- what Unix calls the EPOCH (i.e. 12 midnight (24:00:00), Dec 31st, 1969,
- -- or if you prefer 0:00:00 on Jan 1st, 1970). Since Ada allows dates
- -- before this EPOCH value, the stored duration value may be negative.
-
- -- The time value stored is typically a GMT value, as provided in standard
- -- Unix environments. If this is the case then Split and Time_Of perform
- -- required conversions to and from local times. The range of times that
- -- can be stored in Time values depends on the declaration of the type
- -- Duration, which must at least cover the required Ada range represented
- -- by the declaration of Year_Number, but may be larger (we take full
- -- advantage of the new permission in Ada 95 to store time values outside
- -- the range that would be acceptable to Split). The Duration type is a
- -- real value representing a time interval in seconds.
-
- type Time is new Duration;
-
-end Ada.Calendar;