Date Range Between Two Dates - NEED HELP

hi,

   I've two dates say

  input for example.,
   date1 = '2009-01-02';
   date2 = '2009-01-10';

   Need to find date range array between date1 and date2.

output for example.,
     Array{
     [0]=>'2009-01-02',
     [1]=>'2009-01-03',
     [2]=>'2009-01-04',
     [3]=>'2009-01-05',
     [4]=>'2009-01-06',
     [5]=>'2009-01-07',
     [6]=>'2009-01-08',
     [7]=>'2009-01-09',
     [8]=>'2009-01-10'
     )
Thanks in advance
Shankar.

Shankar Ganesh wrote:

hi,

Hello.

   I've two dates say

  input for example.,
   date1 = '2009-01-02';
   date2 = '2009-01-10';

   Need to find date range array between date1 and date2.

output for example.,
     Array{
     [0]=>'2009-01-02',
     [1]=>'2009-01-03',
     [2]=>'2009-01-04',
     [3]=>'2009-01-05',
     [4]=>'2009-01-06',
     [5]=>'2009-01-07',
     [6]=>'2009-01-08',
     [7]=>'2009-01-09',
     [8]=>'2009-01-10'
     )
Thanks in advance
Shankar.

I'm not entirely clear on what you're looking for. If you already have this data in an array, I suggest using select {}. I.e.

data.select {|x| x >= date1 and x<= date2 }

If you're trying to fetch the data, perhaps you're looking for conditions. I.e.

conditions = [ 'date_column > ? AND date_column < ?', date1, date2 ]

Hope that helps.

Cheers,
Darrik

You can use Date ranges. If you have strings, you'll need to Parsedate
them into dates first. String ranges won't understand date overflow
(ie how many days in a month, months in a year etc.).

((1.year.ago.to_date)..(Date.today)).to_a.map{|x| x.to_s(:db)}

Julian

Julian Leviston wrote:

You can use Date ranges. If you have strings, you'll need to Parsedate
them into dates first. String ranges won't understand date overflow
(ie how many days in a month, months in a year etc.).

((1.year.ago.to_date)..(Date.today)).to_a.map{|x| x.to_s(:db)}

Julian

Thanks for your HELP.
can you explain with example Julian ?

What do you mean?

Blog: http://random8.zenunit.com/
Learn rails: http://sensei.zenunit.com/

hi,

  I've two dates say

input for example.,
  date1 = '2009-01-02';
  date2 = '2009-01-10';

  Need to find date range array between date1 and date2.

output for example.,
    Array{
    [0]=>'2009-01-02',
    [1]=>'2009-01-03',
    [2]=>'2009-01-04',
    [3]=>'2009-01-05',
    [4]=>'2009-01-06',
    [5]=>'2009-01-07',
    [6]=>'2009-01-08',
    [7]=>'2009-01-09',
    [8]=>'2009-01-10'
    )
Thanks in advance
Shankar.

From: Julian Leviston <julian@coretech.net.au>
Date: February 4, 2009 1:08:15 AM EST
To: rubyonrails-talk@googlegroups.com
Subject: [Rails] Re: Date Range Between Two Dates - NEED HELP
Reply-To: rubyonrails-talk@googlegroups.com

You can use Date ranges. If you have strings, you'll need to Parsedate
them into dates first. String ranges won't understand date overflow
(ie how many days in a month, months in a year etc.).

((1.year.ago.to_date)..(Date.today)).to_a.map{|x| x.to_s(:db)}

Julian

Julian gave you almost everything. Are you asking about "Parsedate"?

Try this:

require 'date'
date1 = Date.parse('2009-01-02')
date2 = Date.parse('2009-01-10')
(date1..date2).to_a

puts (date1..date2).to_a

2009-01-02
2009-01-03
2009-01-04
2009-01-05
2009-01-06
2009-01-07
2009-01-08
2009-01-09
2009-01-10
=> nil

Or to make it even more clear, try 2009-02-25 to 2009-03-05

puts (Date.parse('2009-02-25')..Date.parse('2009-03-05')).to_a

2009-02-25
2009-02-26
2009-02-27
2009-02-28
2009-03-01
2009-03-02
2009-03-03
2009-03-04
2009-03-05
=> nil

-Rob

Rob Biedenharn http://agileconsultingllc.com
Rob@AgileConsultingLLC.com