如何计算rubydate的一周的一天?
如何计算rubydate的一周的一天? 例如,2010年10月28日=星期四
我之所以用这个,是因为我讨厌去date文档来查找strftime语法,在那里找不到它,不得不记住它在Time文档中。
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
看看Date类的参考 。 一旦你有一个date对象,你可以简单地做dateObj.strftime('%A')
,或dateObj.strftime('%a')
一天做dateObj.strftime('%a')
。 你也可以使用dateObj.wday
作为星期几的整数值,并且在你看来合适的时候使用它。
那么,我从来没有用ruby编码,但一个快速的谷歌给
time = Time.at(time) # Convert number of seconds into Time object. puts time.wday # => 0: Day of week: 0 is Sunday
Date.today.strftime("%A") => "Wednesday" Date.today.strftime("%A").downcase => "wednesday"
正如@mway所说,你可以在任何Date对象上使用date.strftime(“%A”)来获得星期几。
如果你幸运的话, Date.parse
可能会让你从String到一周中的某一天:
def weekday(date_string) Date.parse(date_string).strftime("%A") end
这适用于你的testing用例:
weekday("October 28 of 2010") #=> "Thursday"
假设我有date = Time.now.to_date
那么date.strftime("%A")
将打印一周中的某一天的名称,并且只有一周中的某一天的数字写入date.wday
。
用ruby开箱即可使用,不需要:
Time.now.strftime("%A").downcase #=> "thursday"
快速,肮脏和本地化友好:
days = {0 => "Sunday", 1 => "Monday", 2 => "Tuesday", 3 => "Wednesday", 4 => "Thursday", 5 => "Friday", 6 => "Saturday"} puts "It's #{days[Time.now.wday]}"
在您的时间对象中,使用属性.wday来获取与一周中的某天相对应的数字,例如,如果.wday返回0,那么您的date是星期日,1星期一等。