Как получить количество дней в данном месяце в Ruby, считающем в течение года?

Я думаю, что Вы видите, что необычные структуры данных использовали большинство некоторые высокоуровневые алгоритмы. Основной пример, который приходит на ум для меня*, который использует График и Приоритетную Очередь, реализованную "кучей".

50
задан Joe Doyle 30 April 2012 в 13:10
поделиться

2 ответа

Это реализация ActiveSupport (немного адаптированная):

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
24
ответ дан 7 November 2019 в 10:26
поделиться

Как насчет:

require 'date'

def days_in_month(year, month)
  (Date.new(year, 12, 31) << (12-month)).day
end

# print number of days in Feburary 2009
puts days_in_month(2009, 2)

Вы также можете посмотреть Time :: days_in_month в Ruby on Rails.

24
ответ дан 7 November 2019 в 10:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: