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