Ruby,检查日期是否是周末?
我的rails应用程序中有一个DailyQuote模型,它有一个股票的日期和价格 。 已为此模型捕获数据库中的数据,包括周末。 周末价格值已设为0。
我想把周六和周日的所有周末价格改为星期五的价格。 在Ruby中执行此操作的最佳方法是什么? 要确定日期是星期六还是星期日,并将其价值更改为该周末的星期五?
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)。
TFM显示了识别星期几的有趣方式:
t = Time.now t.saturday? #=> returns a boolean value t.sunday? #=> returns a boolean value
class Time def is_weekend? [0, 6, 7].include?(wday) end end time = Time.new puts "Current Time : " + time.inspect puts time.is_weekend?
最简单的方法:
today = Date.today if today.saturday? || today.sunday? puts "Today is a weekend!" end
您也可以在一周中的任何其他日子执行此操作。 Ruby非常棒,并且提供了许多很酷的方法。 我建议当你感到.methods
时,通过运行.methods
来看一下该课程的可用内容。 因此,如果您运行Date.today.methods
您将看到这些可用。
Date.today.instance_eval {星期六? || 星期日? }