计算时间范围内的天数?

时间:2013-12-13 20:28:10

标签: ruby

我有以下范围:

range = Time.now-1.month..Time.now

如何计算该范围内的天数?

我正在运行Ruby 2.0.0。

3 个答案:

答案 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