Ruby - new_offset losing a second
===

I'm not sure if this behaviour is intended, but it seems a bit weird to me. I'm using the code from http://stackoverflow.com/questions/4576887/how-do-you-get-datetime-parse-to-return-a-time-in-your-time-zone

    require 'date'
    estHoursOffset = +10 # Brisbane/Australia
    estOffset = Rational(estHoursOffset, 24)

With some times, the DateTime that's returned is a second earlier:

    (DateTime.parse("2012-07-15 16:56:00") - (estHoursOffset/24.0)).new_offset(estOffset)
     => #<DateTime: 2012-07-15T16:55:59+10:00 (2456123.788888889,5/12,2299161)> 

But with other times, it seems correct:

    (DateTime.parse("2012-07-15 16:16:00") - (estHoursOffset/24.0)).new_offset(estOffset)
     => #<DateTime: 2012-07-15T16:16:00+10:00 (2456123.7611111114,5/12,2299161)>

The program I'm writing only cares about the minutes, which means I'm getting back `16:55` when I want `16:56`.

So my questions are;

- Is this intentional? (If so, is it documented somewhere - I haven't been able to find anything.)
- Is there a simple way of fixing this programmatically? Since I don't care about seconds,I suppose I could "round up" the DateTimes returned, but it'd be good to know if this could bring up any other problems in edge cases.