자바 스크립트에서 년도랑 월, 일 입력 받아서 해당 요일 출력하는 프로그램인데
보통 월은 0~11이라 +1을 해주는데 여기 코드는 -1을 해주길래 이해가 안돼서요
b가 몇 월인지입력 받는 값인데왜 +1이 아니라 -1을 해줄까요?
let a = parseInt(prompt("년도를 입력하세요"));
let b = parseInt(prompt("몇 월인지 입력하세요"));
let c = parseInt(prompt("일자를 입력하세요"));
function solution(a,b,c){
// new Date() = month(0부터 시작 (0~11)), 디폴드값 today
// new Date().getDay() = weekday(월~일 (0~6))
let weekday = ['일','월','화','수','목','금','토']
header = a +'년 '+ b + '월 ' + c + '일은 '
footer = '요일 입니다'
text = new Date(a, b-1, c).getDay();
return header + weekday[text] + footer
}
document.write(solution(a,b,c));
사용자가 input으로는 real world에서 integer를 입력 받는건데 프로그래밍 세계에서는 0부터 인덱스가 시작하므로 input으로 입력받은 b를 프로그래밍 세계로 낮추는 작업임 - dc App
사용자가 1월이라고 입력하면 new date 파라미터로는 0이 맞는 값이니깐 - dc App
그니까 b 값에 -1을 줘서 0~11이 아니라 1~12값이 출력되도록 한다는 소리죠?