On Sat, Oct 6, 2012 at 2:43 AM, Todd Benson <[email protected]> wrote:
>>>
>>> first_date = Date.new(2012, 10, 1)
>>> last_date = Date.new(2012, 10, 31)
>>> range = (first_date..last_date)
>>> range.include?(Date.new(2012, 10, 5))
>>> => true
>>> range.include?(Date.new(2012, 11, 1))
>>> => false
> Ranges can't go backwards. Do... range = (seven..today)
There is also an approach which does not need ranges:
irb(main):001:0> d = 3.times.map {sleep 1; Time.now}
=> [2012-10-06 11:56:34 +0200, 2012-10-06 11:56:35 +0200, 2012-10-06
11:56:36 +0200]
irb(main):002:0> d[1].between? d[0], d[1]
=> true
irb(main):003:0> d[1].between? d[0], d[2]
=> true
irb(main):004:0> d[0].between? d[1], d[2]
=> false
With Date
irb(main):005:0> require 'date'
=> true
irb(main):006:0> d = 3.times.map {|i| Date.today + i}
=> [#<Date: 2012-10-06 ((2456207j,0s,0n),+0s,2299161j)>, #<Date:
2012-10-07 ((2456208j,0s,0n),+0s,2299161j)>, #<Date: 2012-10-08
((2456209j,0s,0n),+0s,2299161j)>]
irb(main):007:0> puts d
2012-10-06
2012-10-07
2012-10-08
=> nil
irb(main):008:0> d[1].between? d[0], d[2]
=> true
irb(main):009:0> d[0].between? d[1], d[1]
=> false
irb(main):010:0> d[0].between? d[0], d[1]
=> true
irb(main):011:0> d[0].between? d[1], d[2]
=> false
irb(main):012:0> d[1].between? d[0], d[1]
=> true
This is for inclusive ranges. If you want to exclude either bound
just use a date +/- 1.
Kind regards
robert
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/
-- You received this message because you are subscribed to the Google Groups
ruby-talk-google group. To post to this group, send email to
[email protected]. To unsubscribe from this group, send email
to [email protected]. For more options, visit this
group at https://groups.google.com/d/forum/ruby-talk-google?hl=en