私の顧客は毎月第2月曜日にイベントを開催しています。
カレンダーで赤でマークする必要があります。
その月曜日の日付を「きれいに」見つけるにはどうすればよいですか?
これが私のバージョンです。
月の8番目が月曜日の場合、それは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
1つのルールと完了!
あなたの第2月曜日は、常に毎月8日と14日以内になります。