現在の日付と既に使用されている日付に基づいて利用可能な週を計算する方法が必要です。ルビーで利用可能な週を計算する
私はさまざまな解決策を考え出しましたが、それらのすべてがRubyの「醜い」方法と思われます。私はそれを行う良い方法があることを知っています。
要件:
calculate_available_weeks (Date.current, 5, [1,3,7])
(のはDate.currentは日、2012年1月1日を返すとしましょう:
方法は、我々は、このメソッドを渡しましょう3つの引数
start - Date, to start calculation from
amount - Integer, How many weeks do we want?
used_weeks - Array of already used weeknumbers (optional) Default: nil
を取ります簡略化のため)
次にこの方法は、次の週の日付を返す必要があります:2,4,5,6,8
は、ここで私はこれまで持っているものです:私はルビーを好きな理由
def calculate_week_dates(start, amount, excluded_weeks = nil)
weeks = []
last_checked = start
until weeks.length == amount do
unless excluded_weeks && excluded_weeks.include?(last_checked.cweek)
weeks << last_checked
end
last_checked = last_checked.next_week
end
weeks
end
出力例は、コード例と一致しません。あなたは出力にcweek番号を指定しているようですが、あなたのコードは除外でcweeksを受け取りますが、その結果には週番号ではなく日付を生成します。あなたは、現在のプラス金額の週が来年になったら何を得たいですか? – dbenhur