개발 공부/알고리즘
[프로그래머스 알고리즘] "2016년" JavaScript / new Date()
U_D
2022. 3. 13. 22:43
1. 문제 설명
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"를 반환하세요.
2. 제한 조건
2016년은 윤년입니다.
2016년 a월 b일은 실제로 있는 날입니다.
(13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)
3. 예시
- 입력/출력
4. 풀이
[for문 활용]
7개의 요일이 들어있는 배열과 각 달의 날짜수가 있는 배열을 선언해준다.
해당 날짜까지의 총 날자수의 합에서 7을 나눈다. --> 요일이 7개
function solution(a, b) {
const weekly = ['SUN','MON','TUE','WED','THU','FRI','SAT'];
const months = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
let day = b+4;
for(let i = 0; i < a-1; i++){
day += months[i]
}
return weekly[day % 7];
}
[Date 활용]
function getDayName(a,b){
var arr = ['SUN','MON','TUE','WED','THU','FRI','SAT'];
var date = new Date(`2016-${a}-${b}`);
var day = date.getDay()
return arr[day];
}
new Date()
- 아무런 인수를 전달하지 않으면 현재 날짜와 시간을 가지는 인스턴스를 리턴한다.
var date = new Date();
// Wed Mar 27 2019 20:21:44 GMT+0900 (한국 표준시)
- Date 생성시 다양한 형태로 출력 가능
- 아래는 ISO 날짜 양식 *더 자세한 정보는 아래 출처 링크 클릭
new Date("2020-03-26T13:30:00"); // Thu Mar 26 2020 13:30:00 GMT+0900 (대한민국 표준시)
new Date("2020-03-26UTC13:30:00"); // Thu Mar 26 2020 22:30:00 GMT+0900 (대한민국 표준시)
new Date("2020-03-26GMT13:30:00"); // Thu Mar 26 2020 22:30:00 GMT+0900 (대한민국 표준시)
new Date("2020-03-26"); // 시간이 생략되면 자동으로 09:00:00으로 설정됨.
new Date("2020-03"); // 일이 생략되면 자동으로 1일로 설정됨.
new Date("2020"); // 월이 생략되면 자동으로 1월로 설정됨.
출처 : https://goddaehee.tistory.com/234
getFullYear() : 년도 출력
console.log(date.getFullYear()); //2019
getMonth() : 월 출력
- 단, 0부터 시작합니다. 1월 - > 0
- 그래서 +1 필요
console.log(date.getMonth()); //현재 3월이면 2
getDate() : 날짜 출력
console.log(date.getDate()); //27
getDay() : 요일 출력
- 월요일 = 1, 화요일 = 2, 수요일 3...
console.log(date.getDay()); //3