CVS difference for ais/ai-00427.txt

Differences between 1.3 and version 1.4
Log of other versions for file ais/ai-00427.txt

--- ais/ai-00427.txt	2005/04/14 22:16:13	1.3
+++ ais/ai-00427.txt	2005/05/06 00:32:18	1.4
@@ -1,5 +1,7 @@
-!standard 9.6.1(1)                                   05-04-11  AI95-00427/02
+!standard 9.6.1(1)                                   05-05-05  AI95-00427/03
 !class amendment 05-04-10
+!status Amendment 200Y 05-05-05
+!status ARG Approved 11-0-0  05-04-16
 !status work item 05-04-10
 !status received 05-04-10
 !priority High
@@ -15,7 +17,7 @@
 
 3   Functions Year, Month and Day with a Time Zone parameter are added.
 
-4   The range on the subtype Leap_Seconds_Count is removed.
+4   The range on the subtype Leap_Seconds_Count is changed to -2047 .. 2048.
 
 5   The AARM note regarding Difference is replaced. A parenthetic remark
     is added to the normative text to confirm that Seconds does not include
@@ -66,9 +68,11 @@
 
 !wording
 
+[Editor's note: The paragraph numbers are from draft 11 of the AARM.]
+
 Change 9.6.1(4/2) to
 
-   type Time_Offset is range -1680 .. 1680;	-- allows 28 hours
+   type Time_Offset is range -28*60 .. 28*60;
 
 
 Replace 9.6.1(11/2) by
@@ -147,8 +151,6 @@
     For the returned values, if Days = 0, then
     Seconds + Duration(Leap_Seconds) = Calendar."-" (Left, Right).
 
-
-
 Change 9.6.1 (44.a/2) thus
 
     [The number of days is calculated midnight-to-midnight.]
@@ -157,11 +159,40 @@
 Note: the above remark about leap seconds is really superfluous because it
 is now in the normative text but it leads into the next AARM paragraph
 neatly.
+
+Insert after 9.6.1 (52/2)
+
+function Year       (Date : Time;
+                     Time_Zone  : Time_Zones.Time_Offset := 0)
+                        return Year_Number;
+
+    Returns the year for Date, as appropriate for the specified time zone.
+
+function Month      (Date : Time;
+                     Time_Zone  : Time_Zones.Time_Offset := 0)
+                        return Month_Number;
+
+    Returns the month for Date, as appropriate for the specified time zone.
+
+function Day        (Date : Time;
+                     Time_Zone  : Time_Zones.Time_Offset := 0)
+                        return Day_Number;
+
+    Returns the day number for Date, as appropriate for the specified time zone.
+
+Replace 9.6.1 (57/2-60/2) by
+
+function Second     (Date : Time)
+                        return Second_Number;
 
-Add at the end of 9.6.1 (60/2)
+    Returns the second within the hour and minute for Date.
 
-    The value returned is always less than 1.0.
+function Sub_Second (Date : Time)
+                        return Second_Duration;
 
+    Returns the fraction of second for Date (this has the same accuracy as
+    Day_Durection). The value returned is always less than 1.0.
+
 Add at the end of 9.6.1 (62/2)
 
     If Seconds_Of is called with a Sub_Second value of 1.0, the value
@@ -173,10 +204,21 @@
    The value returned through the Sub_Second parameter is always less
    than 1.0.
 
-Add at the end of 9.6.1 (66/2)
+Replace 9.6.1 (65/2-66/2) by
 
-   The value returned through the Sub_Second parameter is always less
-   than 1.0.
+procedure Split (Date       : in Time;
+                 Year       : out Year_Number;
+                 Month      : out Month_Number;
+                 Day        : out Day_Number;
+                 Hour       : out Hour_Number;
+                 Minute     : out Minute_Number;
+                 Second     : out Second_Number;
+                 Sub_Second : out Second_Duration;
+                 Time_Zone  : in Time_Zones.Time_Offset := 0);
+
+   Splits Date into its constituent parts (Year, Month, Day, Hour, Minute,
+   Second, Sub_Second), relative to the specified time zone offset. The value
+   returned through the Sub_Second parameter is always less than 1.0.
 
 Add at the end of 9.6.1 (68/2)
 
@@ -190,22 +232,44 @@
     returned is equal to the value of Time_Of for the next day with
     a Seconds value of 0.0.
 
-Add at the end of 9.6.1 (72/2)
+Replace 9.6.1(71/2-74/4) by:
 
-   The value returned through the Sub_Second parameter is always less
-   than 1.0.
+procedure Split (Date       : in Time;
+                 Year       : out Year_Number;
+                 Month      : out Month_Number;
+                 Day        : out Day_Number;
+                 Hour       : out Hour_Number;
+                 Minute     : out Minute_Number;
+                 Second     : out Second_Number;
+                 Sub_Second : out Second_Duration;
+                 Leap_Second: out Boolean;
+                 Time_Zone  : in Time_Zones.Time_Offset := 0);
+
 
-Add at the end of 9.6.1 (74/2)
 
-   The value returned through the Seconds parameter is always less
+
+
+   Split Date into its constituent parts (Year, Month, Day, Hour, Minute,
+   Second, Sub_Second), relative to the specified time zone offset. Leap_Second
+   is True if Date identifies a leap second. The value returned through the
+   Sub_Second parameter is always less than 1.0.
+
+procedure Split (Date       : in Time;
+                 Year       : out Year_Number;
+                 Month      : out Month_Number;
+                 Day        : out Day_Number;
+                 Seconds    : out Day_Duration;
+                 Leap_Second: out Boolean;
+                 Time_Zone  : in Time_Zones.Time_Offset := 0);
+
+   Split Date into its constituent parts (Year, Month, Day, Seconds), relative
+   to the specified time zone offset. Leap_Second is True if Date identifies a
+   leap second. The value returned through the Seconds parameter is always less
    than 86_400.0.
 
 
 !discussion
 
-This subject is a can of worms, basket of snakes, or boite de Pandore
-(French being posh again).
-
 Although in parameters are usually given before out parameters, it is
 much more convenient for the user for defaulted parameters to be last.
 There is an example in the package Interfaces.C. The procedures To_C
@@ -293,8 +357,13 @@
 !example
 
 (See discussion.)
+
+!corrigendum 9.6.1(1)
+
+@dinsc
 
---!corrigendum
+This dummy content to force a conflict; the real changes are in the conflict
+text.
 
 !ACATS test
 

Questions? Ask the ACAA Technical Agent