Рубин, проверьте, нет ли даты на выходных?
У меня есть модель DailyQuote в моем приложении rails, у которого есть дата и цена для акций. Данные в базе данных были взяты для этой модели, включая выходные. Цены на выходные дни были установлены как 0.
Я хочу изменить все цены на выходные в субботу и воскресенье, чтобы цена была в пятницу. Каков наилучший способ сделать это в Ruby? Чтобы определить, выпадет ли дата на Сб или Солнце, и измените ее значение на пт в эти выходные?
Ответы
Ответ 1
require 'date'
today = Date.today
ask_price_for = (today.wday == 6) ? today - 1 : (today.wday == 0) ? today - 2 : today
или
require 'date'
today = Date.today
ask_price_for = (today.saturday?) ? today - 1 : (today.sunday?) ? today - 2 : today
ask_price_for
теперь содержит дату, для которой вы хотели бы задать цену.
Получение фактической цены, соответствующей вашей дате, зависит от вашей модели и вашей ORM-библиотеки (т.е. ActiveRecord).
Ответ 2
TFM показывает интересный способ определения дня недели:
t = Time.now
t.saturday? #=> returns a boolean value
t.sunday? #=> returns a boolean value
Ответ 3
class Time
def is_weekend?
[0, 6, 7].include?(wday)
end
end
time = Time.new
puts "Current Time : " + time.inspect
puts time.is_weekend?
Ответ 4
Самый простой способ:
today = Date.today
if today.saturday? || today.sunday?
puts "Today is a weekend!"
end
Вы также можете сделать это в любой другой день недели. Ruby - это фантастика и предлагает множество классных методов. Я предлагаю, когда вы получите тупо взглянуть на то, что доступно для класса, запустив .methods
на нем. Поэтому, если вы запустите Date.today.methods
, вы увидите их доступными.
Ответ 5
Date.today.instance_eval {суббота? || Воскресенье? }