我有约会对象如何使用Date对象和带有星期几名称的字符串来创建新的Date对象?
Mon, 03 Dec 2012
,我有一个包含日期名
"Thursday"
一个String,如何使用这两个对象找到代表在当天的名字一个新的Date对象与原始日期对象相同的一周?所以,在这个例子中,这将是
Thu, 07 Dec 2012
在这种情况下,每周从周一去周日。
我使用Rails 3.2.0和Ruby 1.9.3。
我有约会对象如何使用Date对象和带有星期几名称的字符串来创建新的Date对象?
Mon, 03 Dec 2012
,我有一个包含日期名
"Thursday"
一个String,如何使用这两个对象找到代表在当天的名字一个新的Date对象与原始日期对象相同的一周?所以,在这个例子中,这将是
Thu, 07 Dec 2012
在这种情况下,每周从周一去周日。
我使用Rails 3.2.0和Ruby 1.9.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。
我相信有这样做的更好的办法,但你可以做
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
这一个将很好地为你工作。
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