小编and*_*les的帖子

Ruby:按年份和月份对日期范围进行分组

我正在示例范围内为每个月创建一个范围。

example_range = (Time.zone.today..2.years.from_now)
Run Code Online (Sandbox Code Playgroud)

输出应如下所示:

=> [Wed, 03 Aug 2016..Wed, 31 Aug 2016, Thu, 01 Sep 2016..Fri,
30 Sep 2016, Sat, 01 Oct 2016..Mon, 03 Oct 2016, ...]  
Run Code Online (Sandbox Code Playgroud)

目前,我正在执行此操作,该操作不能使用超过一年的时间,因为该分组会将16年1月和17年1月归为一组。

example_range.group_by(&:month).each { |_, month| month.first..month.last } 
Run Code Online (Sandbox Code Playgroud)

我也尝试过这个,但是由于某种原因,Ruby segfaults在这个问题上...

example_range.group_by(&:year).map{ |ary| ary.group_by(&:month)}
Run Code Online (Sandbox Code Playgroud)

有谁知道一种更漂亮(或至少可以工作)的方式?

ruby date

3
推荐指数
1
解决办法
643
查看次数

标签 统计

date ×1

ruby ×1