From: "Hans-Olof Danielsson" <Hans-Olof.Danielsson@swipnet.se>
To: <comp.lang.ada@ada.eu.org>
Subject: Re: calander package - Proposal for dates
Date: Fri, 16 Mar 2001 10:31:20 +0100
Date: 2001-03-16T10:31:20+01:00 [thread overview]
Message-ID: <mailman.984762982.23102.comp.lang.ada@ada.eu.org> (raw)
In-Reply-To: 200103160849.JAA00680@bulgaria.otn.eurocopter.de
I think there is an ISO standard for date and time format with one of the
formats being something like this:
2001-03-16 10:25:29
If there is such a standard format, it should be coverd by the package.
HOD
----- Original Message -----
From: "Christoph Grein" <christoph.grein@eurocopter.de>
To: <comp.lang.ada@ada.eu.org>
Sent: Friday, March 16, 2001 9:49 AM
Subject: Re: calander package - Proposal for dates
> I've created a set of packages with specification. There's also
> an implementation with test program.
> It's not perfect (it's only for dates, not for times, and the Is_Leap_Year
> function is maybe misplaced) but it might serve as a start.
> I use two child packages, because otherwise the functions are not
resolvable
> when defaults are used.
> (The mailer might ruin the indentation.)
> ------------------------------------------------------------------------
> with Ada.Calendar;
> with Ada.Strings.Unbounded;
> use Ada.Strings.Unbounded;
>
> package Calendar_Format is
>
> --====================================================================
> -- Author Christoph Grein
> -- Version 0.0
> -- Date 15 March 2001
> --====================================================================
> -- Various date formats are defined.
> --
> -- Numeric formats consists of all numbers for days, months, and
> -- years.
> -- Text formats use names for months. To allow for language specific
> -- names, they are defined with a (non-constant) array of (unbounded)
> -- strings.
> --
> -- Numeric Formats:
> -- ----------------
> --
> -- These formats are described by enumeration literals where D stands
> -- for a day digit, M for a month digit, and Y for a year digit.
> -- A single character D or M signifies that only as much digits will
> -- be used as needed, DD or MM signifies that always two digits will
> -- be used.
> -- YYYY signifies that all four digits of a year will be used, YY
> -- signifies the abbreviate form.
> --
> -- Examples:
> --
> -- 10-12-1815 Lady Ada's birthday with
> -- DD_MM_YYYY and '-' separator
> -- 12/10/80 First Ada Standard DOD-MIL-STD 1815 with
> -- MM_DD_YY and '/' separator
> -- 1.1.2001 The begin of the new millenium with
> -- D_M_YYYY or M_D_YYYY and '.' separator
> -- 01.01.01 The same date with with DD_MM_YY or MM_DD_YY
> --
> -- Text Formats:
> -- -------------
> --
> -- There are tow formats differing only in the placement of day and
> -- month. In day, month, year sequence, the values are separated by
> -- one blank character, in month, day, year sequence, an additional
> -- comma is inserted between day and year value. The day value uses
> -- one or two digits as appropriate.
> -- Additionally an ordinal separator may be inserted after the day
> -- value.
> --
> -- Examples:
> --
> -- 10 December 1815 Day_Month_Year with None separator
> -- 10. December 1980 Day_Month_Year with '.' separator
> -- December 10, 1980 Month_Day_Year with None separator
> -- December 10th, 1980 Month_Day_Year with English_Ordinal separator
> -- 1st January 2001 Day_Month_Year with English_Ordinal separator
> --====================================================================
> -- History
> -- Author Version Date Reason for change
> -- C.G. 0.0 15.03.2001 PDL
> --====================================================================
>
> use Ada;
>
> function Is_Leap_Year (Year: Calendar.Year_Number) return Boolean;
>
> -- Numeric Formats:
>
> type Numeric_Date_Format is (D_M_YY,
> D_M_YYYY,
> DD_MM_YY,
> DD_MM_YYYY,
> MM_DD_YY,
> MM_DD_YYYY,
> YYYY_MM_DD);
>
> Standard_Numeric_Date_Format: Numeric_Date_Format := D_M_YYYY;
>
> type Numeric_Date_Separator is ('-', '.', '/');
>
> Standard_Numeric_Separator: Numeric_Date_Separator := '.';
>
> -- Text Formats:
>
> type Text_Date_Format is (Day_Month_Year,
> Month_Day_Year);
>
> Standard_Text_Date_Format: Text_Date_Format := Day_Month_Year;
>
> type Text_Date_Separator is (None, English_Ordinal, '.');
>
> Standard_Text_Date_Separator: Text_Date_Separator := '.';
>
> type Month_Names is array (Calendar.Month_Number) of Unbounded_String;
>
> Standard_Names: Month_Names := (To_Unbounded_String ("January"),
> To_Unbounded_String ("February"),
> To_Unbounded_String ("March"),
> To_Unbounded_String ("April"),
> To_Unbounded_String ("May"),
> To_Unbounded_String ("June"),
> To_Unbounded_String ("July"),
> To_Unbounded_String ("August"),
> To_Unbounded_String ("September"),
> To_Unbounded_String ("October"),
> To_Unbounded_String ("November"),
> To_Unbounded_String ("December"));
>
> end Calendar_Format;
> ------------------------------------------------------------------------
> package Calendar_Format.Numeric is
>
> --====================================================================
> -- Author Christoph Grein
> -- Version 0.0
> -- Date 15 March 2001
> --====================================================================
> -- Calculate the date image in the requested format.
> --
> -- There are two overloaded functions: One takes a Calendar.Time as
> -- input, the other a year, month and day number.
> --====================================================================
> -- History
> -- Author Version Date Reason for change
> -- C.G. 0.0 15.03.2001 PDL
> --====================================================================
>
> function Date_Image (Date : Calendar.Time;
> Format : Numeric_Date_Format :=
> Standard_Numeric_Date_Format;
> Separator: Numeric_Date_Separator :=
> Standard_Numeric_Separator) return String;
> function Date_Image (Year : Calendar.Year_Number;
> Month : Calendar.Month_Number;
> Day : Calendar.Day_Number;
> Format : Numeric_Date_Format :=
> Standard_Numeric_Date_Format;
> Separator: Numeric_Date_Separator :=
> Standard_Numeric_Separator) return String;
>
> end Calendar_Format.Numeric;
> ------------------------------------------------------------------------
> package Calendar_Format.Text is
>
> --====================================================================
> -- Author Christoph Grein
> -- Version 0.0
> -- Date 15 March 2001
> --====================================================================
> -- Calculate the date image in the requested format.
> --
> -- There are two overloaded functions: One takes a Calendar.Time as
> -- input, the other a year, month and day number.
> --====================================================================
> -- History
> -- Author Version Date Reason for change
> -- C.G. 0.0 15.03.2001 PDL
> --====================================================================
>
> function Date_Image (Date : Calendar.Time;
> Format : Text_Date_Format :=
> Standard_Text_Date_Format;
> Separator: Text_Date_Separator :=
> Standard_Text_Date_Separator;
> Names : Month_Names := Standard_Names)
return
> String;
> function Date_Image (Year : Calendar.Year_Number;
> Month : Calendar.Month_Number;
> Day : Calendar.Day_Number;
> Format : Text_Date_Format :=
> Standard_Text_Date_Format;
> Separator: Text_Date_Separator :=
> Standard_Text_Date_Separator;
> Names : Month_Names := Standard_Names)
return
> String;
>
> end Calendar_Format.Text;
>
>
> _______________________________________________
> comp.lang.ada mailing list
> comp.lang.ada@ada.eu.org
> http://ada.eu.org/mailman/listinfo/comp.lang.ada
next parent reply other threads:[~2001-03-16 9:31 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200103160849.JAA00680@bulgaria.otn.eurocopter.de>
2001-03-16 9:31 ` Hans-Olof Danielsson [this message]
2001-03-17 20:18 ` calander package - Proposal for dates Georg Bauhaus
2001-03-24 6:27 ` David Thompson
2001-03-19 6:50 Christoph Grein
[not found] <000201c0ae3b$b27cca00$039697d4@d1>
2001-03-16 23:46 ` Robert C. Leif, Ph.D.
-- strict thread matches above, loose matches on Subject: below --
2001-03-16 8:49 Christoph Grein
2001-03-16 17:21 ` Robert A Duff
2001-03-17 2:55 ` Jeffrey Carter
2001-03-17 10:16 ` Pascal Obry
2001-03-17 18:11 ` Ehud Lamm
2001-03-19 14:26 ` Ted Dennison
2001-03-19 17:30 ` Ehud Lamm
2001-03-20 6:30 ` Wilhelm Spickermann
2001-03-20 11:45 ` Martin Dowie
2001-03-20 13:48 ` Wilhelm Spickermann
2001-03-21 13:37 ` John English
2001-03-20 14:15 ` Marin David Condic
2001-03-20 15:25 ` Ted Dennison
2001-03-19 22:03 ` Jeffrey Carter
2001-03-20 18:34 ` Pascal Obry
2001-03-20 23:01 ` Jeffrey Carter
2001-03-21 8:17 ` Pascal Obry
2001-03-19 16:07 ` Marin David Condic
2001-03-19 17:24 ` Ted Dennison
2001-03-19 17:34 ` Ehud Lamm
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox