How to obtain first day of next month in ruby?

My solution:

class Time
  def start_of_next_month
    Time.local(self.year + self.month / 12, self.month % 12 + 1)
  end
end

In case you are not using rails or do not wish to require active_support, I found a simpler way without active_support

(Date.today - Date.today.mday + 1) # First day of the current month
=> Thu, 01 Dec 2016

Hope this helps! :-)


A response to generically obtain N months (in rails)

(Date.today + N.months).at_beginning_of_month

You can do

require "active_support"

require "active_support/core_ext/date/calculations"
# || require "active_support/all"

Date.today.at_beginning_of_month
#=> Wed, 01 Dec 2010

Date.today.at_beginning_of_month.next_month
#=> Sat, 01 Jan 2011

Date.today.at_beginning_of_month.next_month.next_month
#=> Tue, 01 Feb 2011

And so on...

References

Rails guide 3.0 - 6.1.4 - ActiveSupport - How to Load Core Extensions
Rails guide 3.0 - 6.1.4 - ActiveSupport - Extensions to date