Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

หาปีอธิกสุรทิน (Leap Years) ถัดไป n ปีใน JavaScript

เราต้องเขียนฟังก์ชันที่รับจำนวนเต็มบวก n และคืนค่าอาร์เรย์ของ n ปีอธิกสุรทินถัดไป เราจะแบ่งปัญหานี้เป็นสามส่วน:

Part 1: หาปีปัจจุบันผ่าน JS

โค้ดหาปีปัจจุบันผ่าน JS:

// ได้ปีปัจจุบันจาก instance ใหม่ของ Date object
const year = new Date().getFullYear();

Part 2: ตรวจสอบปีอธิกสุรทิน

เราจะเขียนฟังก์ชัน isLeap() ที่รับตัวเลขและคืน boolean ว่าเป็นปีอธิกสุรทินหรือไม่

ปีถือเป็นปีอธิกสุรทินถ้าตรงตามเงื่อนไขอย่างน้อยหนึ่งข้อ:

  • เป็นพหุคูณของ 400
  • เป็นพหุคูณของ 4 และไม่ใช่พหุคูณของ 100

เก็บสิ่งเหล่านี้ไว้ มาเขียนฟังก์ชัน isLeap():

// ฟังก์ชันตรวจสอบปีอธิกสุรทิน
const isLeap = year => {
  return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);
};

Part 3: หาปีอธิกสุรทินถัดไป n ปี

ตัวอย่างโค้ด

// ฟังก์ชันตรวจสอบปีอธิกสุรทิน
const isLeap = year => {
  return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);
};

const nextNLeap = n => {
  const arr = [];
  let year = new Date().getFullYear() + 1;
  while (arr.length < n) {
    if (isLeap(year++)) {
      arr.push(year - 1);
    }
  }
  return arr;
};

console.log(nextNLeap(5));
console.log(nextNLeap(25));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้:

[2024, 2028, 2032, 2036, 2040]
[2024, 2028, 2032, 2036, 2040, 2044, 2048, 2052, 2056, 2060, 2064, 2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096, 2104, 2108, 2112, 2116, 2120, 2124]