0

我的客户每个月的第二个星期一都有一个活动。

我需要在日历中用红色标记它们。

我如何“干净地”找出那个星期一的日期?

4

2 回答 2

2

这是我的版本。

如果每月的第八个是星期一,那么它是第二个星期一。如果不是周一,那么距离下周一还有多少天?

oct_2012 = Date.new 2012, 10, 8
oct_2012.wday   # => 1, We're done!

nov_2012 = Date.new 2012, 11, 8
nov_2012.wday   # => 4
nov_2012 + (8 - nov_2012.wday)  # => 2012-11-12

这有帮助吗?

编辑

更简单的版本:只需添加并完成。即使月份从星期一开始,此算法也有效。

oct_2012 = Date.new 2012, 10, 1
oct_2012 + (8 - oct_2012.wday)  # => 2012-10-08

nov_2012 = Date.new 2012, 11, 1
nov_2012 + (8 - nov_2012.wday)  # => 2012-11-12

一条规则就完成了!

于 2012-10-30T13:32:35.640 回答
0

你的第二个星期一总是在每个月的 8 号和 14 号之间。

于 2012-10-30T13:38:29.217 回答