comp.lang.ada
 help / color / mirror / Atom feed
From: ldries46 <bertus.dries@planet.nl>
Subject: Re: Trivial question: how to avoid confusing sec, min, hour and day in a program?
Date: Mon, 6 Sep 2021 09:20:27 +0200	[thread overview]
Message-ID: <nnd$6a29fdb2$054d11c6@d5a763e0a23fc394> (raw)
In-Reply-To: <sh1rha$14d6$1@gioia.aioe.org>

Op 5-9-2021 om 9:27 schreef Dmitry A. Kazakov:
> On 2021-09-05 08:56, reinert wrote:
>> Anybody with good ideas on how (in a simplest possible way) to avoid 
>> to confuse between representation of time as seconds, minutes, hours 
>> and days in an Ada program?
>
> Just use the standard type Duration.
>
>> It is somewhere in my program natural/human to think in seconds 
>> whereas  minutes or hours feels more natural at other places (so the 
>> numerics is "human"). Example to illustrate: heart rate is "natural" 
>> to give in number per minute (not in number per second, hour or day). 
>> Time on work is normally given by hours (not seconds) etc..
>
> The user interface is responsible to convert anything to Duration and 
> back.
>
I agree with Dimitry but I think the problem  is far bigger and not only 
in Ada but in every computer language. You cannot use packages written 
by others if you do not know the dimensions they use. For instance in 
mechanical engineering in Europe there is a general use of cm while in 
other countries they use inches and in aircraft engineering they use in 
Europe mostly mm.
In general the use of dimensioning system ( f.i. cgs -cm gram second) is 
different for different countries and application area's. Some factors 
used within calculations are even dependant in the dimensioning system.
It would be a good idea if a package was developed that can solve all 
these problems for instance by doing the calculations in one of the 
possible dimensioning systems automagically presenting the results in 
the dimension you choose.
Such a system must exist of a record for every value, that exist of at 
least  real values for the standard dimensioning system and the value in 
the dimensioning system you want, the factor between the two systems and 
the string containing the dimension, perhaps even more.
There should be functions for "+", "-", "*", "/" and sqrt. The 
calculation should be done for the value in the standard dimension while 
the input and output must be in the wanted system. Also the strings and 
factors must be changed when necessary.
I have already been thinking how but the problem are mostly in the 
strings and the fact that there are also dimensions that have  a lower 
limit (temperature) or have an offset (degrees Celcius, Reamur or 
Fahrenheit) or exist of several integer values (time).
I think that the potential of Ada of being independent of an operating 
system can be extended that way to independent of the dimensioning system.

  parent reply	other threads:[~2021-09-06  7:20 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-05  6:56 Trivial question: how to avoid confusing sec, min, hour and day in a program? reinert
2021-09-05  7:27 ` Dmitry A. Kazakov
2021-09-05 12:42   ` Niklas Holsti
2021-09-06  7:20   ` ldries46 [this message]
2021-09-06  9:47     ` Dmitry A. Kazakov
2021-09-06 13:06       ` ldries46
2021-09-06 13:43         ` J-P. Rosen
2021-09-06 14:13           ` ldries46
2021-09-06 15:10             ` Dennis Lee Bieber
2021-09-06 15:55       ` AdaMagica
2021-09-08 22:00     ` Shark8
2021-10-24  6:52   ` reinert
2021-10-24  7:24     ` J-P. Rosen
2021-10-24 10:39       ` Jeffrey R.Carter
2021-10-24 10:08     ` G.B.
2021-10-24 10:48     ` Simon Wright
2021-10-24 12:09     ` Björn Lundin
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox