Greg Lorriman scribbled on Wednesday 15 Mar 2006 12:55:

> I am trying to efficiently get the date part of a Time object.
> 
> To remove the time part of the Time object I subtract the modulo of a
> day-in-seconds. But if I do this I get a Time object of the date *plus
> 1 hour*!!! Perhaps I'm just tired, but I don;t understand why.
> 
> ie :
> 
>   DAY_IN_SECS=60*60*24;
>   t=Time.parse("20-Oct-2005 04:04:00")
>   datePart=t-t.to_f.modulo(DAY_IN_SECS);
> 
> (and I might apply Time.at to get a Time object rather than a float.)
> 
> However, the result of the above is
> 
>   20-Oct-2005 01:00:00
> 
> instead of
> 
>   20-Oct-2005 00:00:00
> 
> Anyone got any ideas?
> 
> Greg

irb(main):001:0> t = Time.now; t - t.sec - 60 * t.min - 3600 * t.hour
=> Wed Mar 15 00:00:00 CET 2006