Ruby-将星期几转换为整数

Abu*_*nce 3 ruby ruby-on-rails date

您如何将日期字符串(即"Monday""Wednesday")转换为相应的wday整数(13)?

我想出了这种令人费解的方法

Date.today.beginning_of_week("Monday".downcase.to_sym).wday
Run Code Online (Sandbox Code Playgroud)

Ste*_*fan 5

您可以使用解析它strptime

Date.strptime('Monday', '%A').wday
#=> 1

Date.strptime('Wednesday', '%A').wday
#=> 3
Run Code Online (Sandbox Code Playgroud)

中间日期对象是指当前星期中的工作日:

Date.today
#=> #<Date: 2018-11-20 ...>

Date.strptime('Monday', '%A')
#=> #<Date: 2018-11-19 ...>
Run Code Online (Sandbox Code Playgroud)

您还可以使用_strptime(带有下划线前缀)提取恰好在:wday一个工作日内的日期元素:

Date._strptime('Monday', '%A')
#=> {:wday=>1}
Run Code Online (Sandbox Code Playgroud)