특정 월, 특정 일의 요일 확인하기

안녕하세요.

이번 포스팅에서는 특정 월과 특정 일이 주어졌을 때 2018년도의 요일을 반환하는 간단한 함수에 대해 정리하겠습니다.

함수의 인자로 1, 25일이 전달되면, 'THU'의 반환값이 나오게 함수를 작성하면 됩니다. 요일은 'SUN', 'MON'..'SAT' 형식으로 반환합니다. 간단한 함수이지만, Date object관련 익히기에 좋은 것 같습니다.

function getDay(a, b) {
  var days = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];
  return days[new Date(2018, a - 1, b).getDay()];
}
  1. new Date()를 이용해 주어진 날짜를 기준으로 객체를 생성합니다.  - Date가 constructor로 호출될 때, 월로 전달되는 인자 0은 1월을 반환합니다.
  2. getDay Method로 해당 요일에 해당하는 정수를 반환 받습니다. (ex. 일요일은 숫자 0)
  3. 반환 받은 정수를 요일 값으로 변환 및 결과값으로 반환합니다.

위의 함수를 days 배열을 생성하지 않고 코드를 좀 더 줄이고자 한다면, 아래와 같이도 작성할 수 있습니다.

function getDay(a, b) {
  return new Date(2018, a - 1, b)
    .toString()
    .slice(0, 3)
    .toUpperCase();
}

번외편으로, Date를 생성자 new없이 호출하게 되면, 객체가 아닌 호출 시점의 날짜를 String으로 반환합니다.

function getDate() {
  console.log(Date()); // Mon Aug 27 2018 21:45:50 GMT+0900 (한국 표준시)
  console.log(typeof Date()); // string
}

:)