简体   繁体   中英

Ruby Year-Month-Date of last Sunday

I need to calculate in the format of 2014-01-20 the last two Sundays.

So, last_sunday = 2014-01-20 and most_recent_sunday = 2014-01-26 .

I am using Rails 4.0 and Ruby 2.0. How can I get these dates?

In rails 4:

most_recent_sunday = Time.now.sunday.to_s

last_sunday =        Time.now.last_week.sunday.to_s

To get it to the format you are after:

DateTime.parse(most_recent_sunday).strftime("%Y-%m-%d")

http://apidock.com/rails/v4.0.2/DateAndTime/Calculations/sunday http://apidock.com/rails/v4.0.2/DateAndTime/Calculations/last_week

I suggest you take a look at the chronic gem

require 'chronic'
Chronic.parse("last sunday")
=> 2014-01-26 12:00:00 +0200

You can also use rail's active_support to subtract 7.days from the date computed above =)

[11] pry(main)> last_sunday = Time.now - (Time.now.wday + 7) * 86400
=> 2014-01-19 17:17:19 -0600
[12] pry(main)> most_recent_sunday = Time.now - (Time.now.wday) * 86400
=> 2014-01-26 17:18:03 -0600

A pure Ruby solution:

require 'date'

last_two_weeks   = (Date.today-13)..Date.today
last_two_sundays = last_two_weeks.select &:sunday?

puts last_two_sundays #=> 2014-01-19, 2014-01-26

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM