2011-03-22 2 views
5

Je voudrais avoir une fonction qui se start_day et END_DAY que deux paramètres de type chaîne et renvoie la liste des dates à l'intérieur de la durée de date indiquée, y compris jours de début et de fin, tout le monde peut fournir un bloc de code efficace?Ruby on Rails fonction pour ce

def get_list_of_dates(start_date, end_date) 
    ... 
    return dates 
end 

Répondre

5
def get_list_of_dates(start_date, end_date) 
    (Date.parse(start_date)..Date.parse(end_date)).to_a 
end 

Si Date.parse n'accepte pas la chaîne (il n'accepte pas beaucoup de formats), vous voudrez peut-être vérifier chronic.

0

Si vous avez ActiveSupport essayer:

start_date = Date.parse(start_date) 
end_date = Date.parse(end_date) 
for date in start_date..end_date 
    puts date 
end 

Cela devrait vous donner:

... 
Sat, 05 Mar 2011 
Sun, 06 Mar 2011 
Mon, 07 Mar 2011 
Tue, 08 Mar 2011 
Wed, 09 Mar 2011 
... 

Avec ActiveSupport vous pouvez faire des choses comme:

# if you exclude to_date you get all Times in between 
for date in 17.days.ago.to_date..Date.yesterday 
    puts date 
end