Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > rolling back 24 hour times

Reply
Thread Tools

rolling back 24 hour times

 
 
marty
Guest
Posts: n/a
 
      11-12-2003
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.

TIA


 
Reply With Quote
 
 
 
 
Nils Petter Vaskinn
Guest
Posts: n/a
 
      11-12-2003
On Wed, 12 Nov 2003 08:48:14 +0000, marty wrote:

> Is there a mathematical way to calculate this? I don't want the code written
> for me, just a few ideas.


Look at the modulo operator (%) in your textbook.

--
NPV

"the large print giveth, and the small print taketh away"
Tom Waits - Step right up

 
Reply With Quote
 
 
 
 
Simon Biber
Guest
Posts: n/a
 
      11-12-2003
"marty" <rmartin@n^t^l^w^o^r^l^d^.^c^o^m^> 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.

[snip]
> Is there a mathematical way to calculate this? I don't want the
> code written for me, just a few ideas.


You can regard both the time and the offset as an integer number of
minutes before or after midnight, and just add the two integers.

Then normalise the result into hours and minutes (first adding 24 hours
to cancel out any negative values).

Brought to you by the numbers 60 and 1440, and the operators +, *, /
and especially %.

--
Simon.


 
Reply With Quote
 
Al Bowers
Guest
Posts: n/a
 
      11-12-2003


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;

--
Al Bowers
Tampa, Fl USA
mailto: http://www.velocityreviews.com/forums/(E-Mail Removed) (remove the x to send email)
http://www.geocities.com/abowers822/

 
Reply With Quote
 
marty
Guest
Posts: n/a
 
      11-12-2003

"Al Bowers" <(E-Mail Removed)> wrote in message
news:botqjr$1hn89g$(E-Mail Removed)-berlin.de...
>
>
> 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;
>
> --
> Al Bowers
> Tampa, Fl USA
> mailto: (E-Mail Removed) (remove the x to send email)
> http://www.geocities.com/abowers822/
>


That was very useful, thanks all.


 
Reply With Quote
 
Eric Sosman
Guest
Posts: n/a
 
      11-12-2003
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)
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Get the beginning of the hour and the end of the hour Chris Gunnels Ruby 4 09-16-2010 12:33 PM
function reading hour register either in 12 or 24 hour formats andreturning properly ssylee C Programming 4 01-01-2008 03:11 AM
SimpleDateformat: 12 hour versus 24 hour techshiv@gmail.com Java 2 06-01-2007 09:51 PM
Re: 24 hour <--> 12 hour vcr clock fred@nospam.com Computer Support 0 08-14-2004 07:26 AM
24 hour <--> 12 hour vcr clock fred@nospam.com Computer Support 4 08-13-2004 01:52 PM



Advertisments