Al Bowers wrote:

>

> marty wrote:

> > As part of an assignment I need to calculate a 24 hour time by subtracting a

> > one time from another e.g. if the user enters 1.00 as the time and 1.30 as

> > the time to subtract the returned time is 23.30 the previous day.

> >

> > This is straightforward when dealing with positive times. But when negative

> > times are introduced (as above) it all gets tricky.

> >

> > I'd originally thought that a lookup table of times against a corresponding

> > negative time might be useful. But this wouldn't be flexible enough to

> > handle anything later than 24 hours.

> >

> > Is there a mathematical way to calculate this? I don't want the code written

> > for me, just a few ideas.

> >

>

> You might be able to substract or add to bring the values in range.

>

> double time = 1.00; /* represents 1 am */

>

> time-=50.50; /* substact 50.5 hours */

> while(time < 24.0) time+=24.0;

> while(time > 24.0) time -=24.0;
The fmod() function might be convenient here.

Also, note that simple arithmetic will not always

yield the correct result, because not all days are 24.0

hours long. Many parts of the world observe a seasonal

variation involving one 23-hour and one 25-hour day per

year, and *all* of the world (except the POSIX committee,

I've heard) admits the introduction or deletion of leap

seconds twice yearly.

--

(E-Mail Removed)