-
[제코베/JavaScript] 42번. 2020년. 요일구하기, Date 객체🍓𝗪𝗲𝗯/𝖩𝖺𝗏𝖺𝖲𝖼𝗋𝗂𝗉𝗍 2021. 7. 11. 14:22
1. 문제
2020년 1월 1일은 수요일입니다. 2020년 a월 b일은 무슨 요일일까요? 두 수 a, b를 입력받아 2020년 a월 b일이 무슨 요일인지 리턴하는 함수 solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN, MON, TUE, WED, THU, FRI, SAT 입니다. 예를 들어 a = 5, b = 24라면 5월 24일은 일요일이므로 문자열 "SUN"를 반환하세요. 제한 조건 2020년은 윤년입니다. 2020년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일 같은 날짜는 주어지지 않습니다.)
2. 나의 풀이
const day = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']; const month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; let sumDay = 2; // 1월 1일은 수요일 let answer = ''; const data = prompt('두 수를 입력하세요').split(' ').map(function (n) { return parseInt(n, 10); }); for (let i = 0; i < data[0] - 1; i++) { sumDay += month[i]; } sumDay += data[1]; answer = day[sumDay % 7]; console.log(answer);
일수는 전월것까지 더한다음 해당월의 입력일 수 data[1]를 추가로 더한다음, 7로 나눈다.
1월 1일은 수요일로 잡았기 때문에 기본 sumDay라는 변수의 초기값을 2로 설정했다.
윤년의 2월달은 29일이고, 아닐 때는 28일이다.
3. 답안
const month = prompt('월을 입력하세요.'); const date = prompt('일을 입력하세요.'); function solution(a, b) { const day = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]; const x = new Date('2020-' + a + '-' + b); return day[x.getDay()]; } console.log(solution(month, date));
Date객체의 getDay() (0-6)를 이용해 요일을 구한다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date
getTime()를 이용해서 년도 구하는 방법은 다음과 같다!
getTime()은 1970년 1월 1일 00:00:00 UTC와 주어진 날짜 사이의 경과 시간을 밀리 초로 나타낸다.
현재 날짜를 date 변수에 값으로 할당하고, getTime 변수에 getTime 메서드를 활용해서 1970년 기준 시간에서 현재 시간까지 얼마나 경과했는지를 밀리 초로 나타낸다.
밀리초를 연도로 바꾸기 위해 getTime에서 초 * 분 * 시간 * 일을 곱하고, 밀리 초를 일반 초 단위로 바꾸기 위해 1000을 곱한다.
이 숫자를 getTime으로 나눈 나머지를에서 소수점 자리는 없애버린 값을 1970과 더하면, 현재 연도의 값이 나온다.
const date = new Date(); const getTime = date.getTime(); const year = Math.floor(getTime / (60 * 60 * 24 * 365 * 1000) + 1970); console.log(year);
'🍓𝗪𝗲𝗯 > 𝖩𝖺𝗏𝖺𝖲𝖼𝗋𝗂𝗉𝗍' 카테고리의 다른 글
JavaScript 정규식 활용 이메일 체크 (0) 2021.07.13 JavaScript preventDefault()란? (0) 2021.07.13 JavaScript 특정 문자 치환 방법: replaceAll 함수사용과 정규식을 사용한 replace() (0) 2021.07.10 [제코베/JavaScript] 38번 호준이의 아르바이트 (0) 2021.07.10 JavaScript reduce() (0) 2021.07.09