개요
JavaScript의 Date 클래스는 new Date() 객체를 생성하면 현재 날짜와 시간을 반환합니다. 이를 활용하면 내일과 모레의 날짜도 손쉽게 계산할 수 있습니다.
이 문제는 비교적 간단하며, 단 몇 줄의 코드만으로 해결할 수 있습니다. 핵심은 setDate() 메서드와 getDate() 메서드를 조합하는 것입니다.
오늘 날짜 가져오기
먼저 오늘 날짜를 구하는 코드부터 살펴보겠습니다.
// 오늘 날짜 가져오기
const today = new Date();
new Date()는 호출된 시점의 현재 날짜와 시간 정보를 담은 Date 객체를 반환합니다.
내일과 모레 날짜 계산하기
내일과 모레의 날짜를 구하는 전체 코드는 다음과 같습니다.
// 오늘 날짜 가져오기
const today = new Date();
// 내일 변수를 오늘 날짜 값으로 초기화
const tomorrow = new Date(today);
// getDate()에 1을 더해 하루 뒤로 설정
tomorrow.setDate(tomorrow.getDate() + 1);
// 모레 변수를 오늘 날짜 값으로 초기화
const dayAfterTomorrow = new Date(today);
// getDate()에 2를 더해 이틀 뒤로 설정
dayAfterTomorrow.setDate(dayAfterTomorrow.getDate() + 2);
console.log(today);
console.log(tomorrow);
console.log(dayAfterTomorrow);
동작 원리
new Date(today)처럼 기존 Date 객체를 인자로 넘기면 해당 시점 값을 복사한 새로운 객체가 생성됩니다. 이후 setDate(getDate() + n)를 호출하면 현재 '일' 값에 원하는 일수를 더하게 되며, 월이나 연도가 바뀌는 경우에도 자동으로 올바른 날짜로 보정됩니다. 예를 들어 8월 31일에 하루를 더하면 9월 1일로 정확히 계산됩니다.
실행 결과
콘솔 출력 결과는 다음과 같습니다.
2020-08-13T17:13:26.401Z
2020-08-14T17:13:26.401Z
2020-08-15T17:13:26.401Z
첫 번째 줄은 오늘, 두 번째 줄은 내일, 세 번째 줄은 모레의 날짜가 ISO 8601 형식(UTC 기준)으로 출력된 것을 확인할 수 있습니다.