
On 9 July 2011 09:33, Rolf Hanson
Hi, I'm trying to iterate over a range of dates and print them out. Here's how I am doing it in Ruby:
'require 'date'
now = Date.parse('2011-07-11') end_date = Date.parse('2011-12-31')
(now..end_date).each do |d| # print out a date that looks like: # Monday, July 11, 2011 puts "#{d.strftime('%A, %B %d, %Y')}" end
I've been looking at the docs for Data.Time.Format and Data.Time.Calendar and am a bit puzzled at where to begin. Anyone have ideas? I've not found many (any?) examples of time and date manipulation in Haskell.
RW _______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners
A good starting point would be the Enum instance of Day in Data.Time.Calendar, which lets you use the [a..b] syntactic sugar to do a range. fromGregorian will get you from a year, month, and day to the Day type: Prelude Data.Time.Calendar> [fromGregorian 2011 07 09..fromGregorian 2011 07 20] [2011-07-09,2011-07-10,2011-07-11,2011-07-12,2011-07-13,2011-07-14,2011-07-15,2011-07-16,2011-07-17,2011-07-18,2011-07-19,2011-07-20] This is equivalent to enumFromTo (fromGregorian 2011 07 09) (fromGregorian 2011 07 20) formatTime in Data.Time.Format will probably get you the rest of the way. Hope that helps, Alex