From 1ff3d951e620ddeeb97e87e2024391470e886467 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sun, 9 May 2010 12:45:21 +0300 Subject: [PATCH] AS guide: more date calculation utilities --- .../active_support_core_extensions.textile | 60 ++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/railties/guides/source/active_support_core_extensions.textile b/railties/guides/source/active_support_core_extensions.textile index d321e3db72..b7b5f47eef 100644 --- a/railties/guides/source/active_support_core_extensions.textile +++ b/railties/guides/source/active_support_core_extensions.textile @@ -2680,7 +2680,7 @@ d.next_year # => Wed, 28 Feb 2001 h6. +last_month+, +next_month+ -The methods +last_month+ and +next_month+ return the a date with the same day in the last or next month: +The methods +last_month+ and +next_month+ return the date with the same day in the last or next month: d = Date.new(2010, 5, 8) # => Sat, 08 May 2010 @@ -2697,6 +2697,64 @@ Date.new(2000, 5, 31).next_month # => Fri, 30 Jun 2000 Date.new(2000, 1, 31).next_month # => Tue, 29 Feb 2000 +h6. +beginning_of_week+, +end_of_week+ + +The methods +beginning_of_week+ and +end_of_week+ return the dates for the beginning and end of week, assuming weeks start on Monday: + + +d = Date.new(2010, 5, 8) # => Sat, 08 May 2010 +d.beginning_of_week # => Mon, 03 May 2010 +d.end_of_week # => Sun, 09 May 2010 + + ++beginning_of_week+ is aliased to +monday+ and +at_beginning_of_week+. +end_of_week+ is aliased to +sunday+ and +at_end_of_week+. + +h6. +next_week+ + ++next_week+ receives a symbol with a day name in English (in lowercase, default is +:monday+) and it returns the date corresponding to that day in the next week: + + +d = Date.new(2010, 5, 9) # => Sun, 09 May 2010 +d.next_week # => Mon, 10 May 2010 +d.next_week(:saturday) # => Sat, 15 May 2010 + + +h6. +beginning_of_month+, +end_of_month+ + +The methods +beginning_of_month+ and +end_of_month+ return the dates for the beginning and end of the month: + + +d = Date.new(2010, 5, 9) # => Sun, 09 May 2010 +d.beginning_of_month # => Sat, 01 May 2010 +d.end_of_month # => Mon, 31 May 2010 + + ++beginning_of_month+ is aliased to +at_beginning_of_month+, and +end_of_month+ is aliased to +at_end_of_month+. + +h6. +beginning_of_quarter+, +end_of_quarter+ + +The methods +beginning_of_quarter+ and +end_of_quarter+ return the dates for the beginning and end of the quarter of the receiver's calendar year: + + +d = Date.new(2010, 5, 9) # => Sun, 09 May 2010 +d.beginning_of_quarter # => Thu, 01 Apr 2010 +d.end_of_quarter # => Wed, 30 Jun 2010 + + ++beginning_of_quarter+ is aliased to +at_beginning_of_quarter+, and +end_of_quarter+ is aliased to +at_end_of_quarter+. + +h6. +beginning_of_year+, +end_of_year+ + +The methods +beginning_of_year+ and +end_of_year+ return the dates for the beginning and end of the year: + + +d = Date.new(2010, 5, 9) # => Sun, 09 May 2010 +d.beginning_of_year # => Fri, 01 Jan 2010 +d.end_of_year # => Fri, 31 Dec 2010 + + ++beginning_of_year+ is aliased to +at_beginning_of_year+, and +end_of_year+ is aliased to +at_end_of_year+. + h4. Conversions h3. Extensions to +DateTime+ -- GitLab