Permalink
Browse files

AS guide: more date calculation utilities

  • Loading branch information...
1 parent 08d991a commit 1ff3d951e620ddeeb97e87e2024391470e886467 @fxn fxn committed May 9, 2010
Showing with 59 additions and 1 deletion.
  1. +59 −1 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:
<ruby>
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
</ruby>
+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:
+
+<ruby>
+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
+</ruby>
+
++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:
+
+<ruby>
+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
+</ruby>
+
+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:
+
+<ruby>
+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
+</ruby>
+
++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:
+
+<ruby>
+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
+</ruby>
+
++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:
+
+<ruby>
+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
+</ruby>
+
++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+

0 comments on commit 1ff3d95

Please sign in to comment.