如何计算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星期一等。