Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm ngày thứ n trong năm nhuận và không nhuận trong JavaScript

Mô tả vấn đề

Chúng ta cần viết hàm JavaScript nhận vào số làm đối số 1 và boolean làm đối số 2. Boolean true = năm nhuận. Hàm trả về ngày rơi vào ngày thứ n của năm.

Ví dụ minh họa

Mã thực hiệ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));

Đầu ra

Kết quả trong console:

Feb, 29