How to get the number of days in a given month in Ruby, accounting for year?

前端 未结 13 1273
暖寄归人
暖寄归人 2020-12-23 09:22

I\'m sure there\'s a good simple elegant one-liner in Ruby to give you the number of days in a given month, accounting for year, such as \"February 1997\". What is it?

13条回答
  •  醉话见心
    2020-12-23 09:58

    This is the implementation from ActiveSupport (a little adapted):

    COMMON_YEAR_DAYS_IN_MONTH = [nil, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    
    def days_in_month(month, year = Time.now.year)
       return 29 if month == 2 && Date.gregorian_leap?(year)
       COMMON_YEAR_DAYS_IN_MONTH[month]
    end
    

提交回复
热议问题