如何计算红宝石中某一天的星期几?例如,2010年10月28日是=星期四
答案 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