2010-08-31 15 views
5

我一直在尝试使用Date对象的步骤()方法来检索当前日期前2个日期如下:Ruby的正确用法

date_d.step(2, step=-2){|d| 
    puts d   
    } 

哪里2是极限,step是向前或向后的步数。

我已经按照这里给出的文档做到了这一点:Date.step()

这段代码进入一个无限循环,然后输出日期不停(向后)

似乎没有给对于这种方法有足够的文档,我也没有在网上找到解决方案。

请帮我解决这个问题。

回答

5

极限参数是循环停止的日期而不是天数或迭代次数。 因此,例如

date_d = Date.parse('2010-08-01') 
date_d.step(date_d - 4 , step=-2){|d| 
    puts d   
} 

将输出

2010-08-01 
2010-07-30 
2010-07-28 
+0

谢谢。我会试试这个 – dkris 2010-08-31 08:52:44