Midnight

how to use that method to returns a new time representing the start of the day (0:00)

134: def beginning_of_day
135: (self - self.seconds_since_midnight).change(:usec => 0)
136: end

i'd like to to some like taht

if Time.now < modnight
  do...
else
  do..
end

any ideas ?

Time.now.beginning_of_day returns the beginning of today. But that's
probably not what you want because this:

Time.now < Time.now.beginning_of_day

Would always be true unless it is 0:00. What do you want to achieve?

misiek wrote:

···

how to use that method to returns a new time representing the start of
the day (0:00)

134: def beginning_of_day
135: (self - self.seconds_since_midnight).change(:usec => 0)
136: end

i'd like to to some like taht

if Time.now < modnight
  do...
else
  do..
end

any ideas ?

--
Posted via http://www.ruby-forum.com/\.

Jules Jacobs wrote:

Time.now.beginning_of_day returns the beginning of today. But that's probably not what you want because this:

Time.now < Time.now.beginning_of_day

thank you , this is exactly what I want

misiek wrote:

Jules Jacobs wrote:

Time.now.beginning_of_day returns the beginning of today. But that's probably not what you want because this:

Time.now < Time.now.beginning_of_day

thank you , this is exactly what I want

Mind you, it's pretty much always later than it was when the day started. *wonders if misiek is hacking Ruby in a temporal anomaly*

David Vallner

David Vallner wrote:

misiek wrote:

Jules Jacobs wrote:

Time.now.beginning_of_day returns the beginning of today. But that's probably not what you want because this:

Time.now < Time.now.beginning_of_day

thank you , this is exactly what I want

Mind you, it's pretty much always later than it was when the day started. *wonders if misiek is hacking Ruby in a temporal anomaly*

David Vallner

  better now ? Time.now > Time.now.beginning_of_day

misiek wrote:

David Vallner wrote:

misiek wrote:

Jules Jacobs wrote:

Time.now.beginning_of_day returns the beginning of today. But that's probably not what you want because this:

Time.now < Time.now.beginning_of_day

thank you , this is exactly what I want

Mind you, it's pretty much always later than it was when the day started. *wonders if misiek is hacking Ruby in a temporal anomaly*

David Vallner

better now ? Time.now > Time.now.beginning_of_day

I don't know what you're trying to achieve here. ``Time.now > Time.now.beginning_of_day'' is false for one microsecond each day at midnight. You shouldn't really have to check for that, it's pretty much the same as writing ``if true''. Numerical methods coming to mind, you might instead want to check if the difference between Time.now and Time.now.beginnning_of_day is less than a given time period.

David Vallner

I don't know what you're trying to achieve here. ``Time.now >
Time.now.beginning_of_day'' is false for one microsecond each day at
midnight. You shouldn't really have to check for that, it's pretty much
the same as writing ``if true''. Numerical methods coming to mind, you
might instead want to check if the difference between Time.now and
Time.now.beginnning_of_day is less than a given time period.

And that is precisely why you need

  now = Time.now
  if now.some_value < OtherValue.from(now)

instead of

  if Time.now.some_value < OtherValue.from(Time.now)

for all practical purposess. The latter code will seem to work, even when
you do unit tests; but occasionally it will break and you'll never figure
out why, since it always works when you debug.