Ruby - конвертировать день недели в целое число - PullRequest
0 голосов
/ 20 ноября 2018

Как бы вы преобразовали дневную строку (т.е. "Monday" или "Wednesday") в соответствующее целое число wday (1 или 3)?

Я придумал эту запутаннуюпуть

Date.today.beginning_of_week("Monday".downcase.to_sym).wday

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Вы можете использовать гем CHRONIC.

Chronic - это анализатор даты / времени на естественном языке Ruby, написанный Томом Престоном-Вернером (@mojombo), который принимает удивительно читаемый текст и преобразует его в даты,(http://robdodson.me/playing-with-ruby-dates/)

Вы можете использовать вот так:

require 'chronic'

Chronic.parse('Monday').wday
=> 1

Я надеюсь помочь вам!

0 голосов
/ 20 ноября 2018

Вы можете проанализировать его, используя strptime:

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

Date.strptime('Wednesday', '%A').wday
#=> 3

Промежуточный объект даты ссылается на день недели в текущей неделе:

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

Date.strptime('Monday', '%A')
#=> #<Date: 2018-11-19 ...>

Youтакже можно использовать _strptime (с префиксом подчеркивания), чтобы извлечь элементы даты, которые оказываются :wday для одного дня недели:

Date._strptime('Monday', '%A')
#=> {:wday=>1}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...