我有以下范围:
range = Time.now-1.month..Time.now
如何计算该范围内的天数?
我正在运行Ruby 2.0.0。
答案 0 :(得分:2)
range = Time.now .. Time.now-1.month
=> 2013-12-13 15:35:57 -0500..2013-11-13 15:35:57 -0500
((range.first - range.last) / 1.day).ceil
=> 30
答案 1 :(得分:0)
日期的#<<
方法减去一个月(#&gt;&gt;添加一个)。减去日期会导致数天。
require 'date'
p (Date.today - (Date.today << 1)).to_i #=> 30
#so:
range = Time.now-1.month..Time.now
p p (range.last.to_date - range.first.to_date).to_i #=>30
答案 2 :(得分:0)
1.month
will always be 30 days,因此您的范围将始终为30天。如果您想查找本月的天数,因为您已经有ActiveSupport,您可以使用Time#days_in_month
:
Time.days_in_month(Time.now.month, Time.now.year)
# => 31
Time.days_in_month(Time.now.month - 1, Time.now.year)
# => 30