日期返回非现有日期

时间:2015-05-31 18:12:40

标签: ruby

我希望迭代几个月的日子,所以:

require 'time'
Time.now.month # => 5
Time.now.day.next # => 32

这是什么意思?五月三十二日?

另外,

rota.rb:2:in `<main>': undefined method `days_in_month' for Time:Class (NoMethodError)

出了什么问题?

2 个答案:

答案 0 :(得分:2)

这应该解释一下:

Time.now.day.class
=> Fixnum

Fixnum对日期一无所知,但确实有方法next

如果你想进入第二天,那么:

(Time.now + (60 * 60 * 24)).day
=> 1

如果安装了Rails,您可以执行以下操作:

require 'active_support/time'
(Time.now + 1.day).day
=> 1

答案 1 :(得分:1)

next调用与日期或时间无关 - Time.now.day返回一个整数。调用next(或succ)会返回该数字加1。有关详细信息,请参阅Fixnum文档。