Date作成者の罠
function solution(month, day){
var date = new Date(2022, month, day+98);
let getMonth = date.getMonth();
let getDay = date.getDate();
return getMonth+'월'+getDay+'일';
}
console.log(solution(6,22))
// 답은 9월 28일 인데 27일이 나온다
//왜그런지 알아보겠다.
function solution(month, day){
var date = new Date(2022, month, day);
//실제로 month는 0-11의 값만 넣을 수 있으며, 0을 1월로 인식한다.
console.log(date)
// 2022-07-21-15:00:00
// 여기서 문제가 발생한다. 실제 데이터 값은 7월 21일 3시이기 때문에, day에 숫자를 더해
// 월을 바꾼다고 하더라도, 9월 -> 10월로 변할때는 30일이 끝인데, 실제로 8월->9월로 변할떄는 31일이 끝
let getMonth = date.getMonth(); // getMonth는 또 1을 더해 return 6
let getDay = date.getDate(); // 반올림해서 return 22
return getMonth+'월'+getDay+'일';
}
console.log(solution(6,22))
// 6월 22일로 답이 잘 나온다.
// 그래서 실제 계산과 같도록 month를 -1해주고, getMonth에서 다시 +1을 해줘야한다.
function solution(month, day){
var date = new Date(2022, month-1, day+98);
console.log(date)
let getMonth = date.getMonth()+1;
let getDay = date.getDate();
return getMonth+'월'+getDay+'일';
}
console.log(solution(6,22))
Reference
この問題について(Date作成者の罠), 我々は、より多くの情報をここで見つけました https://velog.io/@ohbin/Date-생성자의-함정-2w01cy45テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol