JavaScript로 달력 구현 논의
우리의 달력은 1부터 월의 마지막 날까지의 숫자를 담은 표입니다. 문제는 표의 첫 번째 행에서 숫자가 첫 번째 셀부터 시작하지 않아야 한다는 점입니다.
이는 일반적으로 명백합니다. 그러나 정확히 어떤 셀부터 시작해야 하는지는 명확하지 않습니다. 생각해 봅시다.
주가 월요일부터 시작하고, 그것이 0번째 날이라고 가정합시다.
이 경우 월 첫날의 요일 번호는 그 앞에 올 빈 셀의
개수에 해당합니다. 예를 들어,
목요일은 번호 3을 가지며 그 앞에
3개의 빈 셀이 있을 것입니다.
비슷한 문제가 표의 끝에서도 발생할 것입니다. 거기서도 월의 마지막 날 이후에 빈 셀을 남겨야 합니다. 이 경우 빈 셀의 개수는 6에서 월의 마지막 날의 요일 번호를 뺀 값과 같을 것입니다.
이제 우리가 어떻게 표를 구성할지 생각해 봅시다.
가장 편리한 방법은 각 하위 배열에 7개의 요소(=일주일의
날짜 수)를 가지는 2차원 배열을 갖는 것임이 분명합니다.
이때 첫 번째와 마지막 하위 배열에는 일부 요소가 비어 있어야 합니다.
작업 알고리즘
1부터 월의 마지막 날까지의 숫자 배열을 만드는 함수를 만들어 봅시다. 그런 다음 배열의 시작 부분에 필요한 수의 빈 요소를 추가하는 함수를 만듭니다. 비슷한 함수가 배열의 끝에도 빈 요소를 추가해야 합니다.
이후에는 요소의 개수가 7의 배수인 1차원 배열을
얻을 것입니다.
이 배열을 하위 배열당 7개의 요소를 가지는 2차원 배열로
변환합니다.
그런 다음 이 2차원 배열을 가져와 반복문으로 순회하며 우리의 표를 구성할 것입니다.
우리는 이 작업 알고리즘을 다음 강의들에서 단계적으로 수행할 것입니다.