2011-03-22 13 views
5

के लिए कार्य करते हैं मैं एक समारोह जो दो स्ट्रिंग प्रकार पैरामीटर के रूप में START_DAY और END_DAY हो और आरंभ और अंत दिन सहित निर्धारित तिथि अवधि के अंदर तिथियों की सूची देता है करना चाहते हैं, किसी को भी प्रदान कर सकते हैं एक कुशल कोड ब्लॉक?रूबी ऑन रेल्स इस

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

उत्तर

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

यदि Date.parse स्ट्रिंग को स्वीकार नहीं करता है (यह कई प्रारूपों को स्वीकार नहीं करता है), तो आप chronic देख सकते हैं।

0

यदि आप ActiveSupport है कोशिश:

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

कि तुम देना चाहिए:

... 
Sat, 05 Mar 2011 
Sun, 06 Mar 2011 
Mon, 07 Mar 2011 
Tue, 08 Mar 2011 
Wed, 09 Mar 2011 
... 
ActiveSupport साथ

आप की तरह कर सकते हैं:

# if you exclude to_date you get all Times in between 
for date in 17.days.ago.to_date..Date.yesterday 
    puts date 
end 
संबंधित मुद्दे