Даты могут работать как диапазон, так что довольно легко выполнять итерации по диапазону.Единственный реальный трюк - как вывести их в виде отформатированной строки, которую можно найти в методе Date#strftime
, который задокументирован здесь .
from_date = Date.new(2011, 1, 1)
to_date = Date.new(2011, 1, 10)
(from_date..to_date).each { |d| puts d.strftime("%-d %B %Y and %-m/%-d/%Y") }
# => 1 January 2011 and 1/1/2011
# => 2 January 2011 and 1/2/2011
# => ...
# => 9 January 2011 and 1/9/2011
# => 10 January 2011 and 1/10/2011
( Примечание.: Я вспоминаю, как мне не повезло, когда я возвращался с неадмированными процентными форматами, такими как %-d
в Windows, но если вышеприведенное не работает, и вы хотите, чтобы они не дополнялись в этой среде, вы можете удалить черту и применить свои собственные обходные пути..)