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?
If you're working in Rails, chances are you'll get hamstrung eventually if you switch among Time
, Date
, and DateTime
, especially when it comes to dealing with UTC/time zones, daylight savings, and the like. My experience has been it's best to use Time
, and stick with it everywhere.
So, assuming you're using Rails's Time class, there are two good options, depending on context:
If you have a month m
and year y
, use the class method on Time
:
days = Time.days_in_month(m, y)
If you have a Time object t
, cleaner to ask the day number of the last day of the month:
days = t.end_of_month.day
require 'date' def days_in_month(year, month) Date.new(year, month, -1).day end # print number of days in February 2012 puts days_in_month(2012, 2)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With