获取本月的最后一天

时间:2014-02-04 02:31:56

标签: ruby

如果给出月份数,我将如何获得当月的最后一天。

例如,如果月份是8(2014年8月),我将如何获得该月的最后一天? (8月的最后一天是31日)。函数(8)将返回31.

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

使用Date::civil

require 'date'
Date.civil(2014, 8, -1).day
# => 31

根据文件:

  

月和   每月的日期应为负数或正数(为a   年末/月的相对月/日,负数)。   它们不应该为零。

答案 1 :(得分:1)

require 'date'
def function(month)
  raise "invalid month" unless month.is_a?(Integer) and month.between?(1, 12)
  month == 12 ? 31 : Date.new(Date.today.year,month+1,1).prev_day.day
end
function(8)
# => 31

来源:http://www.ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/Date.html#method-i-prev_day