在 JavaScript 中查詢閏年和非閏年中的第 n 天


問題

我們要求編寫一個 JavaScript 函式,該函式採用一個數字作為第一個引數,採用一個布林值作為第二個引數。

布林值指定閏年(如果為真)。基於此資訊,我們的函式應該返回第 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

更新於: 17-4-2021

247 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.