Ruby on rails 获取一周的天数

Ruby on rails 获取一周的天数,ruby-on-rails,Ruby On Rails,在我的应用程序中,我存储活动的日数范围为1到31,时间数为小时。任何活动都属于时间表,其中包含月和年 现在我想对一年中的所有周以及该周的活动总小时数进行概述。我通过以下方式确定一个月的周数: first_week = Date.new(timesheet.year,timesheet.month,1).strftime("%U").to_i last_week = Date.new(timesheet.year,timesheet.month,1).end_of_month.strftime("

在我的应用程序中,我存储活动的
日数
范围为1到31,时间数为
小时
。任何活动都属于
时间表
,其中包含

现在我想对一年中的所有周以及该周的活动总小时数进行概述。我通过以下方式确定一个月的周数:

first_week = Date.new(timesheet.year,timesheet.month,1).strftime("%U").to_i
last_week = Date.new(timesheet.year,timesheet.month,1).end_of_month.strftime("%U").to_i
weeknrs = (first_week..last_week).to_a
weeknrs.each do |weeknr|
  # Do something
end
如何确定属于特定周的天数?

请尝试此方法

1..7.each do |i|
 Date.commercial(timesheet.year, weeknr, i)
end
有关更多参考资料,请参阅

希望,这会对你有所帮助。

请试试这个

1..7.each do |i|
 Date.commercial(timesheet.year, weeknr, i)
end
有关更多参考资料,请参阅

希望,这将对您有所帮助。

我决定使用gem,它给了我一个
week\u split
方法,该方法返回一个数组,其中包含一个月的所有周,以及每周的所有天:
Date.new(2012,1,1)。week\u split
返回:

 [[1, 2, 3, 4, 5, 6, 7],
    [8, 9, 10, 11, 12, 13, 14],
    [15, 16, 17, 18, 19, 20, 21],
    [22, 23, 24, 25, 26, 27, 28],
    [29, 30, 31]]
现在,我可以轻松地迭代此数组并查询活动:

- weeks = Date.new(year,month,1).week_split
- weeks.each do |week|
  - activities = Activity.where("month = ? AND year = ? AND day IN (?)", timesheet.month, timesheet.year, week)
我决定使用gem,它为我提供了一个
week\u split
方法,该方法返回一个数组,其中包含一个月的所有周以及每周的所有天:
Date.new(2012,1,1)。week\u split
返回:

 [[1, 2, 3, 4, 5, 6, 7],
    [8, 9, 10, 11, 12, 13, 14],
    [15, 16, 17, 18, 19, 20, 21],
    [22, 23, 24, 25, 26, 27, 28],
    [29, 30, 31]]
现在,我可以轻松地迭代此数组并查询活动:

- weeks = Date.new(year,month,1).week_split
- weeks.each do |week|
  - activities = Activity.where("month = ? AND year = ? AND day IN (?)", timesheet.month, timesheet.year, week)

谢谢,但这会错过那些日数在8到31之间的活动。从第一周到最后一周,你将有一整天的时间。例如日期商业(2016,1,1),其中2016年是年,中间1代表周,最后1代表周一。啊,现在我明白你的意思了,我错过了具体的商业方法。谢谢,但那会错过日期在8到31之间的活动。通过将上述逻辑放入“周NRS”循环中。从第一周到最后一周,你将有一整天的时间。Ex.Date.commercial(2016,1,1),其中2016是年,中间1代表周,最后1代表周一。啊,现在我明白你的意思了,我错过了具体的商业方法。