문제42 : 2020년
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일 같은 날짜는 주어지지 않습니다.)
const day = ["SUN","MON","TUE","WED","THU","FRI","SAT"];
const month = "5";
const date = "5";
function solution(a, b){
const theDay = new Date(`2020-${a}-${b}`);
console.log(day[theDay.getDay()]);
}
solution(month, date);
📌 new Date() 사용법
1. 현재 날짜 및 시간 가져오기
let now = new Date();
console.log(now); // 현재 날짜와 시간이 출력됨
new Date()를 호출하면 현재 시스템의 시간을 기준으로 Date 객체가 생성됩니다.
2. 특정 날짜 및 시간 지정
✅ 문자열로 날짜 지정
let date1 = new Date("2024-02-18");
console.log(date1); // 2024년 2월 18일 00:00:00 (UTC 기준)
"월 일, 연도 시:분:초" 형식도 가능
✅ 연, 월, 일, 시, 분, 초 지정
let date3 = new Date(2024, 1, 18, 12, 30, 0);
console.log(date3);
- new Date(연, 월, 일, 시, 분, 초, 밀리초) 형식으로 지정
- 주의할 점: 월(Month)은 0부터 시작!
- 1이면 2월, 0이면 1월
✅ 타임스탬프(밀리초)로 생성
let date4 = new Date(1708232400000);
console.log(date4);
new Date(밀리초)는 1970년 1월 1일 00:00:00 UTC 기준으로부터의 경과 시간(ms)로 날짜를 생성합니다.
📌 Date 객체의 주요 메서드
✅ 날짜 및 시간 정보 가져오기
let date = new Date();
console.log(date.getFullYear()); // 연도 (YYYY)
console.log(date.getMonth()); // 월 (0부터 시작)
console.log(date.getDate()); // 일 (1부터 시작)
console.log(date.getDay()); // 요일 (0: 일요일, 1: 월요일 ...)
console.log(date.getHours()); // 시 (24시간제)
console.log(date.getMinutes()); // 분
console.log(date.getSeconds()); // 초
console.log(date.getMilliseconds()); // 밀리초
✅ 날짜 및 시간 설정하기
date.setFullYear(2025);
date.setMonth(5); // 6월 (0부터 시작)
date.setDate(10); // 10일
date.setHours(14); // 오후 2시
console.log(date); // 변경된 날짜 출력
✅ 타임스탬프 변환
console.log(date.getTime()); // 1970년 1월 1일 기준 ms 값 반환
console.log(Date.now()); // 현재 타임스탬프(ms)
📌 Date 객체 활용 예제
✅ 날짜 차이 계산하기
let start = new Date("2024-02-01");
let end = new Date("2024-02-18");
let diff = end.getTime() - start.getTime();
let daysDiff = diff / (1000 * 60 * 60 * 24); // ms → 일(day) 변환
console.log(daysDiff + "일 차이"); // "17일 차이"
✅ 현재 날짜를 원하는 포맷으로 출력하기
function formatDate(date) {
let yyyy = date.getFullYear();
let mm = String(date.getMonth() + 1).padStart(2, "0"); // 월 0부터 시작
let dd = String(date.getDate()).padStart(2, "0");
return `${yyyy}-${mm}-${dd}`;
}
console.log(formatDate(new Date())); // 2024-02-18
✅ 정리
- new Date()는 현재 날짜 및 시간을 반환
- new Date(연, 월, 일, 시, 분, 초) 형식으로 특정 날짜 지정 가능 (월은 0부터 시작)
- new Date("YYYY-MM-DD") 또는 타임스탬프(ms)로도 생성 가능
- getFullYear(), getMonth(), getDate() 등으로 날짜 정보 추출 가능
- setFullYear(), setMonth(), setDate() 등을 사용해 날짜 변경 가능
*위 포스팅은 챗GPT 답변을 토대로 작성되었습니다!
'JavaScript' 카테고리의 다른 글
[JS] 자바스크립트의 조건문 정리 (0) | 2025.02.18 |
---|---|
[JS] 자바스크립트 변수 var , let, const 차이 그리고 호이스팅 (0) | 2025.02.18 |
[JS] 코딩테스트 037 * 꼭 복습하기~! (0) | 2025.02.17 |
[JS] 코딩테스트 036 - 구구단 for문 응용 (0) | 2025.02.17 |
[JS] 코딩테스트 035 - 팩토리함수**** 클로저 개념 (0) | 2025.02.17 |