JavaScript

[JS] 코딩테스트 042 * 날짜 new Date()

Irene1988 2025. 2. 18. 16:34
문제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 답변을 토대로 작성되었습니다!