Подтвердить что ты не робот

Рубин, проверьте, нет ли даты на выходных?

У меня есть модель DailyQuote в моем приложении rails, у которого есть дата и цена для акций. Данные в базе данных были взяты для этой модели, включая выходные. Цены на выходные дни были установлены как 0.

Я хочу изменить все цены на выходные в субботу и воскресенье, чтобы цена была в пятницу. Каков наилучший способ сделать это в Ruby? Чтобы определить, выпадет ли дата на Сб или Солнце, и измените ее значение на пт в эти выходные?

4b9b3361

Ответ 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 {суббота? || Воскресенье? }