如何计算红宝石中某一天的星期几?

时间:2010-10-28 15:43:56

标签: ruby date

如何计算红宝石中某一天的星期几?例如,2010年10月28日是=星期四

10 个答案:

答案 0 :(得分:62)

我已经使用过这个因为我讨厌去找日期文档来查找strftime语法,而不是在那里找到它并且必须记住它在时间文档中。

require 'date'

class Date
  def dayname
     DAYNAMES[self.wday]
  end

  def abbr_dayname
    ABBR_DAYNAMES[self.wday]
  end
end

today = Date.today

puts today.dayname
puts today.abbr_dayname

答案 1 :(得分:60)

看看Date class reference。获得日期对象后,您可以在一整天内完成dateObj.strftime('%A'),或在缩短的日期内dateObj.strftime('%a')。您也可以使用dateObj.wday作为星期几的整数值,并根据需要使用它。

答案 2 :(得分:25)

好吧,我从来没有用红宝石编码,但快速google给出了

time = Time.at(time)    # Convert number of seconds into Time object.
puts time.wday    # => 0: Day of week: 0 is Sunday

答案 3 :(得分:19)

Date.today.strftime("%A")
=> "Wednesday"

Date.today.strftime("%A").downcase  
=> "wednesday"

答案 4 :(得分:6)

快速,肮脏且本地化友好:

days = {0 => "Sunday",
1 => "Monday", 
2 => "Tuesday",
3 => "Wednesday",
4 => "Thursday",
5 => "Friday",
6 => "Saturday"}

puts "It's #{days[Time.now.wday]}"

答案 5 :(得分:5)

开箱即用,不需要红宝石:

Time.now.strftime("%A").downcase #=> "thursday"

答案 6 :(得分:4)

正如@mway所说,您可以在任何Date对象上使用date.strftime(“%A”)来获取星期几。

如果你很幸运,Date.parse可能会让你一次性从一天中的一天到一天中的某一天:

def weekday(date_string)
  Date.parse(date_string).strftime("%A")
end

这适用于您的测试用例:

weekday("October 28 of 2010") #=> "Thursday"

答案 7 :(得分:4)

说我有date = Time.now.to_date 然后date.strftime("%A")将打印一周中某一天的姓名,并且只显示一周中某天的数字date.wday

答案 8 :(得分:2)

在您的时间对象中,使用属性.wday获取与星期几对应的数字,例如如果.wday返回0,那么您的日期是星期日,1星期一等等。

答案 9 :(得分:0)

与安德烈亚斯基本上相同的答案

days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']
today_is = days[Time.now.wday]

if today_is == 'tuesday'
  ## ...
end