2012-11-21 44 views

回答

3

如果你能设法转换“星期四”到周4天 - 我知道你 - ,你可以得到另一个日期是这样的:

1.9.3p125 :014 > d = Date.parse "Mon, 03 Dec 2012" 
=> Mon, 03 Dec 2012 
1.9.3p125 :015 > Date.commercial d.cwyear, d.cweek, 4 
=> Thu, 06 Dec 2012 
1.9.3p125 :016 > 

顺便说一句,你可以存储从日期名称到阵列或散列中的数字,或者使用I18n。

0

我相信有这样做的更好的办法,但你可以做

def date_by_day(date, day_name) 
    beginning_of_week = date.beginning_of_week 
    7.times do |i| 
    _date = beginning_of_week + i.days 
    return _date if _date.strftime("%A") == day_name 
    end 
end 
0

这一个将很好地为你工作。

def date_by_day(date, day_name) 
    beginning_of_week = date.beginning_of_week 
    day_number = Time::DAYS_INTO_WEEK[day_name.to_sym] 
    return (beginnig_of_week + day_number.days) 
end 
相关问题