이 계산기는 무엇을 하나요?
매월 N번째 요일 계산기는 "1월 셋째 주 월요일"이나 "12월 첫째 주 금요일"처럼 매달 반복되는 규칙의 정확한 달력 날짜를 찾아줍니다. 이런 규칙은 우리 주변 곳곳에 있습니다. 미국 연방 공휴일(추수감사절은 11월 넷째 주 목요일), 정기 회의, 급여 지급일, 옵션 만기 금요일, 자동이체 청구일 등이 대표적이죠. 달력에서 일일이 칸을 세어볼 필요 없이, 연도·월·몇 번째·요일만 선택하면 해당 날짜가 며칠인지 바로 알려줍니다.
사용 방법
연도와 월을 고른 뒤, 몇 번째 요일(첫째부터 다섯째까지)을 선택하고 요일을 지정하세요. 계산기가 그에 해당하는 날짜를 며칠인지 알려줍니다. 또한 해당 순번이 실제로 존재하는지도 확인해 줍니다. 다섯째 요일은 일부 달에만 있기 때문이죠. 함께 표시되는 첫 번째 해당 요일 날짜를 보면 전체 흐름을 한눈에 파악할 수 있습니다(이후 순번은 7일씩 더하면 됩니다).
계산 공식 풀이
먼저 그 달 1일이 무슨 요일인지를 구하고, 이를 f라고 합니다(1 = 일요일부터 7 = 토요일까지). 목표 요일 \(w\)의 첫 번째 날짜에 도달하려면 \((w - f + 7) \bmod 7\)일만큼 더합니다. 이후 순번은 정확히 7일씩 뒤이므로, N번째 해당 요일은 다음과 같이 계산됩니다.
$$\text{날짜} = 1 + \big((w - f + 7) \bmod 7\big) + (n - 1) \times 7$$
이 값이 그 달의 일수보다 크면 해당 순번은 존재하지 않습니다(예를 들어, 화요일이 1일·8일·15일·22일·29일에 오는 경우, 그 달이 최소 29일 이상일 때만 다섯째 화요일이 존재합니다).
예시로 풀어보기
2024년 1월 셋째 주 월요일을 찾아봅시다. 2024년 1월 1일은 월요일이므로 \(f = 2\), \(w = 2\)입니다. 보정값은 \((2 - 2 + 7) \bmod 7 = 0\)이므로 첫 번째 월요일은 1일입니다. 셋째 주 월요일은 $$1 + 0 + (3 - 1) \times 7 = \mathbf{15}$$일이 됩니다. 따라서 날짜는 2024년 1월 15일이며, 실제로 마틴 루터 킹 주니어의 날(미국 공휴일)이었습니다.
자주 묻는 질문
요일 번호는 어떻게 매기나요? 일요일 = 1부터 토요일 = 7까지로, 입력 드롭다운과 동일합니다.
왜 "해당 순번이 없다"고 나오나요? 일부 달에는 특정 요일이 네 번만 있습니다. 다섯째를 요청했는데 네 번밖에 없으면, 계산된 날짜가 그 달의 일수를 넘어서기 때문에 존재하지 않는 것으로 표시됩니다.
그 달의 마지막 요일도 찾을 수 있나요? 먼저 다섯째 순번을 선택해 보세요. 존재한다면 그것이 마지막이고, 없다면 넷째 순번이 마지막입니다.