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