如何用ruby计算一个日期的星期几?例如,2010年10月28日=星期四如何用红宝石计算一个日期的星期几?
49
A
回答
56
我都用这个,因为我讨厌去日期文档查找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
58
看看Date class reference。一旦你有一个日期对象,你可以简单地做一整天的dateObj.strftime('%A')
,或简单的做一天的dateObj.strftime('%a')
。您也可以使用dateObj.wday
作为一周中某天的整数值,并按照您认为合适的方式使用它。
+2
你会如何本地化此,说如果你使用Rails ? – Mohamad 2012-11-08 16:30:18
2
在您的时间对象中,使用属性.wday获取与星期几对应的数字,例如,如果.wday返回0,那么你的日期是周日,周一1等
24
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"
4
说我有date = Time.now.to_date
那么date.strftime("%A")
将打印星期几的名称,并且只写出一周中某天的编号date.wday
。
18
Date.today.strftime("%A")
=> "Wednesday"
Date.today.strftime("%A").downcase
=> "wednesday"
5
作品了红宝石的方块,而无需:
Time.now.strftime("%A").downcase #=> "thursday"
5
快速,肮脏和本地化友好:
days = {0 => "Sunday",
1 => "Monday",
2 => "Tuesday",
3 => "Wednesday",
4 => "Thursday",
5 => "Friday",
6 => "Saturday"}
puts "It's #{days[Time.now.wday]}"
相关问题
- 1. 红宝石日期计算
- 2. 如何计算日期红宝石
- 3. 如何获取星期几的红宝石日期
- 4. 红宝石日期
- 5. 如何得到一个红宝石日期日期对象
- 6. 计算日期星期一作为星期几= 1
- 7. 如何计算Java中某个日期的星期几?
- 8. MongoDB的红宝石日期
- 9. 如何计算距给定日期X个星期几的日期?
- 10. 红宝石按日期统计项目
- 11. 计算星期一到星期六的星期几
- 12. 红宝石日期转换
- 13. 红宝石跳过日期
- 14. 红宝石比较日期
- 15. 红宝石日期减法
- 16. 红宝石NameError时日期
- 17. 计算每个星期的日期
- 18. 计算星期几XSL
- 19. 红宝石日历日期选择
- 20. 红宝石/导轨的日期范围
- 21. 红宝石中的日期扣除
- 22. 按星期几计算订单,将星期六和星期日计数添加到星期五
- 23. 如何计算两个日期之间有多少星期日?
- 24. 计算从一个日期到另一个日期的星期数
- 25. 如何计算当月的星期日?
- 26. Objective-c从星期一开始计算星期几,而不是星期天
- 27. 如何从日期检索星期几
- 28. 日期格式转换红宝石
- 29. 红宝石2.2.3无效日期
- 30. 红宝石UNIX日期不正确
看起来像时间类也有#wday方法,FWIW。 – rogerdpack 2012-02-27 17:04:48
将steenslag蒸馏为直接回答海报的一行:使用Date :: ABBR_DAYNAMES [Date.today.wday]'。 (您必须在使用它之前包括日期库:'需要日期'。)选项:显示全天名称而不是前三个字母,使用'DAYNAMES'而不是'ABBR_DAYNAMES'。 – 2012-08-20 00:35:36
有没有办法从0..6中得到一个数字而无需自己转换它? – Xitcod13 2014-03-31 22:17:33