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 ?

Jules J. 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

David V. wrote:

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 V.

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

misiek wrote:

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 writingif 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 V.

misiek wrote:

Jules J. 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 V.

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 writingif 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.