2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT
입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.
2016년은 윤년입니다.
2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)
a | b |
---|---|
5 | 24 |
Date를 전에 들어 본적이 있어서 Date함수를 사용하기로 했다.
1. Date() 사용하기
2. 입력되는 a,b의 요일 찾아내기
let totalDate = new Date()
let year = totalDate.getFullYear()
let month = totalDate.getMonth()+1
let date = totalDate.getDate()
let day = totalDate.getDay();
console.log(totalDate)
console.log(year,month, date,day )
특정 날짜의 정보를 얻고 싶다면,괄호 안에 날짜를 입력해 주면 된다.👌🏻
let totalDate = new Date('2016-2-14')
getDay()요일은 숫자로 반환해 줘서 새로운 배열의 인덱스로 사용하기로 했다.
0~6으로 요일을 나타내주어, 일~토로 나타냈다.
새로운 배열을 만들어, 그 안에 요일 입력해 준다음 해당 요일의 인덱스 값으로 요일을 찾아오도록 했다.
// 2022-1-17이 월요일 이니까 day는 1로 나온다.
let day = new Date(`2022-1-17`).getDay()
let dayLabel = new Array('SUN','MON','TUE','WED','THU','FRI','SAT');
// 이 숫자를 이용해 dayLabel의 인덱스로 사용하면 'MON'이 나온다.
console.log(dayLabel[day]); // 'MON'
function solution(a,b) {
let answer = '';
let day = new Date(`2016-${a}-${b}`).getDay()
let dayLabel = new Array('SUN','MON','TUE','WED','THU','FRI','SAT');
console.log(dayLabel[day])
return answer=dayLabel[day]
}
solution(1,17)
function getDayName(a,b){
var date = new Date(2016, (a - 1), b);
return date.toString().slice(0, 3).toUpperCase();
}
let date = new Date(`2020-01-10`);
console.log(date.toString()) //Fri Jan 10 2020 00:00:00 GMT+0000 (Coordinated Universal Time)
date에 toString()을 사용하면 알아서 요일과 달을 문자로 바뀌어서 알려준다.오호~
slice를 통해 요일만 잘라낸 다음 대문자로 변경해서 리턴하는 것으로 문제를 해결 하셨다.