我需要一種基於當前日期和已使用日期計算可用星期的方法。計算ruby中的可用星期
我已經想出了不同的解決方案,但它們都似乎是Ruby的「醜陋」。我知道有更好的方法來做到這一點。
要求:
方法需要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
比方說我們通過方法是:
calculate_available_weeks (Date.current, 5, [1,3,7])
(比方說Date.current返回孫,2012 01一月爲簡單起見)
然後該方法應返回日期爲接下來的幾個星期: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數字,但您的代碼在排除時會接受cweek,但會在其結果中生成日期而非週數。目前加上數週到明年的時間,你想得到什麼? – dbenhur