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 {星期六? || 星期日? }