如果给出月份数,我将如何获得当月的最后一天。
例如,如果月份是8(2014年8月),我将如何获得该月的最后一天? (8月的最后一天是31日)。函数(8)将返回31.
感谢您的帮助。
答案 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