我现在已经找了几个小时,但我找不到合适的答案 希望你能帮助我。
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
有人可以帮我解决这个问题吗?
提前致谢。
答案 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