How can I get the current working day in ruby?

For example, today, 07/28/2011 How do I get weeks the first day on Monday, which is 07/25/2011 in ruby

+7
source share
2 answers
>> Date.today.beginning_of_week.strftime('%d/%m/%Y') #=> 25/07/2011 

See the Time and Date classes under Rails for more information and strftime for information on formatting options.

+26
source

Without Rails / ActiveSupport:

 phrogz$ irb > require 'date' > now = Date.today #=> #<Date: 2011-07-28 (4911541/2,0,2299161)> > sunday = now - now.wday #=> #<Date: 2011-07-24 (4911533/2,0,2299161)> > monday = now - (now.wday - 1) % 7 #=> #<Date: 2011-07-25 (4911535/2,0,2299161)> > monday.iso8601 #=> "2011-07-25" > monday.strftime('%d/%m/%Y') #=> "25/07/2011" 

See Date in the standard library for more details.

Finished as a method:

 require 'date' # For weekdays to start on Monday use 1 for the offset; for Tuesday use 2, etc. def week_start( date, offset_from_sunday=0 ) date - (date.wday - offset_from_sunday)%7 end sun = Date.parse '2011-07-24' week_start(sun,0).strftime('%a, %b-%d') #=> "Sun, Jul-24" week_start(sun,1).strftime('%a, %b-%d') #=> "Mon, Jul-18" 
+20
source

All Articles