Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^2: Round time to nearest 15 or 30 minutes

by jesuashok (Curate)
on Apr 25, 2006 at 04:02 UTC ( [id://545460]=note: print w/replies, xml ) Need Help??


in reply to Re: Round time to nearest 15 or 30 minutes
in thread Round time to nearest 15 or 30 minutes

Hi

Thanks a lot.
definitely I have to improve my logical Ideas.
That is working fine as expected.

"Keep pouring your ideas"
  • Comment on Re^2: Round time to nearest 15 or 30 minutes

Replies are listed 'Best First'.
Re^3: Round time to nearest 15 or 30 minutes
by DrHyde (Prior) on Apr 25, 2006 at 10:05 UTC
    If you want the nearest 15 minute boundary, then the code is wrong. It will give you the previous 15 minute boundary.

    You need to:

    • add $interval/2 minutes to the time;
    • subtract the remainder you'd get when dividing by $interval minutes.

    Note that the modulus operator % only works with integers. In practice, you can probably ignore the fraction of a minute that gets thrown away. If you can't, then you'll need to write your own remainder function.

      Ah, this was very helpful, thanks. Not being too clever in these matters, I didn't quite understand the above, but it got me close enough to experiment successfully (though I don't quite get the second bullet item). In my case I was after an offset to add to a unixtime, so that's how the code is oriented.
      for (my $i = 0; $i < 60; $i++) { my $offset = getOffsetToNearestInterval($i,15); print "$i: " . ($i + $offset) . ' (' . $offset . ')' . "\n"; } sub getOffsetToNearestInterval { my $number = shift; my $interval = shift; my $nearest_interval = ( $interval * int( ($number + ($interval/2) + ) / $interval) ); my $offset_to_interval = $nearest_interval - $number; return $offset_to_interval; }
      Hope this helps the next guy stumbling on this thread.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://545460]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (2)
As of 2024-04-20 15:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found