在RoR中获取请求月份中的日历周数

时间:2012-11-06 14:52:43

标签: ruby-on-rails-3 week-number

我现在已经找了几个小时,但我找不到合适的答案 希望你能帮助我。

Ruby:1.9.3p194
Rails:3.2.8

目标:

1.9.3p194 :001 > get_weeknumbers_in_month 1, 2012
=> [1, 2, 3, 4]
1.9.3p194 :002 > get_weeknumbers_in_month 2, 2012
=> [5, 6, 7, 8]
1.9.3p194 :003 > get_weeknumbers_in_month 3, 2012
=> [9, 10, 11, 12, 13]
1.9.3p194 :004 > get_weeknumbers_in_month 4, 2012
=> [14, 15, 16, 17]

因此,当调用方法get_weeknumbers_in_month时,我实际上想要一组日历周数。


研究:

从日期获取月份数字:

DateTime.parse("2012-01-10").month
=> 1



获得一个月的天数:

Time::days_in_month(1, 2012)
=> 31



要获取日期的日历周编号:

DateTime.parse("2012-04-12").strftime("%W").to_i
=> 15



有人可以帮我解决这个问题吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果我明白,你差不多完成了! 最后是计算月份的第一个和最后一个日期,不是吗? 所以接下来的事情可能会起作用(未经测试)

def get_weeknumbers_in_month(month, year)
  first_week_num = Date.new(year,month,1).strftime("%U").to_i
  last_week_num = Date.new(year,month,1).end_of_month.strftime("%U").to_i
  (first_week_num..last_week_num).to_a
end