我需要在过去的几十年中以数字方式遍历所有日期和月份,以及每个日期的月份和日期的名称.很明显,一系列循环可以实现这一点,但我想知道最简洁的ruby方式来实现这一点.
基本上我在过去X年中每天都需要这样的输出:
2011年1月3日和2011年1月3日
什么是最干净的方法?
bry*_*mck 18
日期可以作为范围工作,因此迭代范围相当容易.唯一真正的技巧是如何将它们作为格式化字符串输出,可以在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
Run Code Online (Sandbox Code Playgroud)
(注意:我记得有一些运气不好的方法可以使用像%-d
Windows 一样的非填充百分比格式,但如果上述方法不起作用,并且你希望它们在该环境中无需填充,则可以删除短划线并使用自己的解决方法.)
归档时间: |
|
查看次数: |
3810 次 |
最近记录: |