현재 날짜와 이미 사용한 날짜를 기반으로 사용 가능한 주를 계산하는 방법이 필요합니다.루비에서 사용 가능한 주를 계산하십시오.
나는 다른 솔루션을 생각해 냈지만 모두 루비에 대해 "추악한"것처럼 보입니다. 나는 그것을하는 더 좋은 방법이 있다는 것을 압니다.
요구 사항 :
이calculate_available_weeks (Date.current, 5, [1,3,7])
(의이 Date.current이 2012년 (일) 1월 1일를 반환한다고 가정 해 봅시다 :
는방법은
start - Date, to start calculation from
amount - Integer, How many weeks do we want?
used_weeks - Array of already used weeknumbers (optional) Default: nil
이의 우리가 법이 통과한다고 가정 해 봅시다 3 개 인수
합니다 단순화를 위해)그런 다음 방법은 다음 주 날짜를 반환해야합니다 : 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