Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 윤년 및 비윤년에서 연도의 n 번째 날 찾기

<시간/>

문제

숫자를 첫 번째 인수로, 부울을 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다.

부울은 윤년을 지정합니다(true인 경우). 이 정보를 기반으로 함수는 해당 연도의 n번째 날에 해당하는 날짜를 반환해야 합니다.

예시

다음은 코드입니다 -

const day = 60;
const isLeap = true;
const findDate = (day = 1, isLeap = false) => {
   if(day > 366){
      return undefined;
   };
   const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
   const days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
   if(isLeap){
      days[1]++;
   };
   let i = -1, count = 0;
   while(count < day){
      i++;
      count += days[i];
   };
   const upto = days.slice(0, i).reduce((acc, val) => acc + val);
   const month = months[i];
   const d = count - upto;
   return `${month}, ${d}`;
};
console.log(findDate(day, isLeap));

출력

다음은 콘솔 출력입니다 -

Feb, 29