From: gautier_niouzes@hotmail.com
Subject: Re: A few questions
Date: Sun, 1 Nov 2015 08:33:39 -0800 (PST)
Date: 2015-11-01T08:33:39-08:00 [thread overview]
Message-ID: <93664973-e930-45cc-bdf3-bf0bd6527f12@googlegroups.com> (raw)
In-Reply-To: <f487cd6f-f4f0-437e-9077-0495d17156f3@googlegroups.com>
What about something like this:
Begin_Date: Time:= ...;
End_Date: Time:= ...;
Day_Seconds: constant Duration:= 86400.0;
Days: constant Natural:= Natural(End_Date-Begin_Date) / Day_Seconds;
subtype Period is Natural range 0..Days;
?
As a bonus, you have below a display function from my toolbox :-) .
_________________________
Gautier's Ada programming
http://gautiersblog.blogspot.com/search/label/Ada
NB: follow the above link for a valid e-mail address
-- Time_display returns date & time, current or given.
-- E.g.: "2013/08/01 05:49:51"
-- Useful for a log file or a display of a lengthy operation.
-- This is Ada 83 compatible. Format accepted by SQL queries.
--
-- 32- or 64-bit: DEC/Compaq/HP Ada (83), GNAT (95/2005), ObjectAda (95)
-- 16-bit: Meridian (83) -> Long_Integer is 32-bit
-- 16-bit: Janus 2.x (83): KO: no Long_Integer
--
-- Test program in following comment:
--
-- with Text_IO,Time_display;procedure Test is begin Text_IO.Put(Time_display);end;
with Calendar;
function Time_display(
T : Calendar.Time:= Calendar.Clock;
Seconds : Boolean := True;
Intra_day: Boolean := True
)
return String
is
use Calendar;
subtype Sec_int is Long_Integer; -- must contain 86_400
s : constant Sec_int:= Sec_int( Calendar.Seconds(T) );
m : constant Sec_int:= s / 60;
-- + 100: trick for obtaining 0x
sY : constant String:= Integer'Image( Year(T));
sM : constant String:= Integer'Image( Month(T) + 100);
sD : constant String:= Integer'Image( Day(T) + 100);
shr: constant String:= Sec_int'Image( m / 60 + 100);
smn: constant String:= Sec_int'Image( m mod 60 + 100);
ssc: constant String:= Sec_int'Image( s mod 60 + 100);
--
function Optional_seconds return String is
begin
if Seconds then
return ':' & ssc( ssc'Last-1 .. ssc'Last );
else
return "";
end if;
end Optional_seconds;
--
function Optional_intra_day return String is
begin
if Intra_day then
return
" " &
shr( shr'Last-1 .. shr'Last ) & ':' &
smn( smn'Last-1 .. smn'Last ) & Optional_seconds;
else
return "";
end if;
end Optional_intra_day;
begin
return
sY( sY'Last-3 .. sY'Last ) & '/' & -- not Year 10'000 compliant.
sM( sM'Last-1 .. sM'Last ) & '/' &
sD( sD'Last-1 .. sD'Last ) &
Optional_intra_day;
end Time_display;
next prev parent reply other threads:[~2015-11-01 16:33 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-31 20:29 A few questions Laurent
2015-10-31 20:49 ` Dmitry A. Kazakov
2015-11-01 13:16 ` Laurent
2015-11-01 0:25 ` Jeffrey R. Carter
2015-11-01 13:30 ` Laurent
2015-11-03 6:25 ` Randy Brukardt
2015-11-01 9:05 ` Jacob Sparre Andersen
2015-11-01 13:40 ` Laurent
2015-11-01 18:14 ` Jacob Sparre Andersen
2015-11-01 18:40 ` Laurent
2015-11-01 13:42 ` brbarkstrom
2015-11-01 13:52 ` Laurent
2015-11-01 17:59 ` Jeffrey R. Carter
2015-11-01 18:35 ` Laurent
2015-11-02 13:25 ` brbarkstrom
2015-11-01 15:15 ` Dennis Lee Bieber
2015-11-01 16:33 ` gautier_niouzes [this message]
2015-11-01 16:36 ` gautier_niouzes
2015-11-01 18:17 ` Stephen Leake
2015-11-01 18:53 ` Laurent
2015-11-02 0:41 ` Dennis Lee Bieber
2015-11-02 16:42 ` Stephen Leake
2015-11-02 17:45 ` Simon Wright
2015-11-02 18:48 ` Simon Wright
2015-11-03 6:33 ` Randy Brukardt
2015-11-03 8:26 ` Simon Wright
2015-11-03 6:40 ` Randy Brukardt
2015-11-03 8:34 ` Simon Wright
2015-11-04 16:19 ` Simon Wright
2015-11-05 1:20 ` Randy Brukardt
2015-11-05 8:34 ` briot.emmanuel
2015-11-12 18:28 ` Randy Brukardt
2015-11-12 20:19 ` Simon Wright
2015-11-12 20:56 ` Dmitry A. Kazakov
2015-11-12 21:15 ` Randy Brukardt
2015-11-13 8:40 ` Dmitry A. Kazakov
2015-11-13 17:52 ` Randy Brukardt
2015-11-13 20:37 ` Dmitry A. Kazakov
2015-11-13 22:15 ` Randy Brukardt
2015-11-14 11:42 ` Dmitry A. Kazakov
2015-11-14 12:37 ` Simon Wright
2015-11-14 17:24 ` Shark8
2015-11-14 20:09 ` Simon Wright
2015-11-15 18:54 ` Brad Moore
2015-11-13 8:45 ` briot.emmanuel
2015-11-13 17:41 ` Randy Brukardt
2015-11-14 19:57 ` briot.emmanuel
2015-11-16 19:13 ` Randy Brukardt
2015-11-16 20:47 ` Dmitry A. Kazakov
2015-11-17 21:30 ` Randy Brukardt
2015-11-18 9:53 ` Dmitry A. Kazakov
2015-11-18 22:27 ` Randy Brukardt
2015-11-19 8:52 ` Dmitry A. Kazakov
2015-11-19 21:15 ` Randy Brukardt
2015-11-16 21:50 ` Simon Wright
2015-11-17 21:33 ` Randy Brukardt
2015-11-17 23:14 ` Simon Wright
2015-11-17 8:49 ` briot.emmanuel
2015-11-17 22:09 ` Randy Brukardt
2015-11-05 8:45 ` Simon Wright
2015-11-05 8:52 ` Simon Wright
2015-11-12 18:29 ` Randy Brukardt
2015-11-12 18:32 ` Randy Brukardt
2015-11-12 20:02 ` Simon Wright
2015-11-12 21:08 ` Randy Brukardt
2015-11-15 17:56 ` Brad Moore
2015-11-15 21:42 ` Simon Wright
2015-11-16 19:16 ` Randy Brukardt
-- strict thread matches above, loose matches on Subject: below --
2015-02-07 17:43 Laurent
2015-02-07 22:15 ` Brad Moore
2015-02-08 22:37 ` Laurent
2015-02-09 13:56 ` Brad Moore
2015-02-09 18:36 ` Laurent
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox