Tikky.xyz

ก็แค่พื้นที่ของฉันเท่านั้นเอง

วิธีเขียนฟังก์ชั่น Leap year และ Leap year คืออะไร

Spread the love

Leap year คืออะไร

ก่อนอื่นก็ต้องอธิบายก่อนว่า Leap year คือการบอกว่าในเดือนกุมภาพันธ์ในปีนั้นมีทั้งหมด 28 หรือ 29 วันนั่นเอง ตัวอย่างเช่น

ปี 2020 ถือเป็น Leap Year หรือปีอธิกสุรทิน คือปีที่มี 366 วัน ซึ่งจะเวียนมาทุกๆ 4 ปี โดยวันที่เพิ่มขึ้นมา 1 วัน คือวันที่ 29 กุมภาพันธ์ แล้ว Leap Year เกิดขึ้นได้อย่างไร ทำไมวันในแต่ละปีถึงไม่เท่ากัน?

โลกเคลื่อนที่ไปรอบดวงอาทิตย์ด้วยอัตราความเร็ว 30 กิโลเมตร ต่อวินาที และต้องใช้เวลารวมทั้งสิ้น 365 วันหรือ 1 ปี ซึ่งเรียกว่าปีปกติสุรทิน (Common Year) แต่ระยะเวลาจริงๆ นั้น ไม่ใช่ 365 วันพอดีเป๊ะ แต่เป็น 365 วัน 6 ชั่วโมง 9 นาที หรือ 365.2524 วัน

ดังนั้นส่วนที่เกินมา .25 วัน จึงถูกนำมานับรวมให้ทุกๆ 4 ปี มีวันเพิ่มขึ้นมา 1 วัน แทน .25 วันที่หายไปในแต่ละปี เพื่อให้การนับสอดคล้องกับตำแหน่งปรากฏของดวงอาทิตย์ โดยวันดังกล่าวถูกเพิ่มเข้าไปในเดือนกุมภาพันธ์ ซึ่งเป็นวันที่ 29 กุมภาพันธ์ (Leap Day)

จะสังเกตุได้ว่าปีไหนที่เดือนกุมภาพันธ์ที่มีจำนวนวัน 29 วันใน Social media ต่างๆ จะเห็นโพสกันว่ามีระบบ Bug ตรงนั้นตรงนี้บ้างนั่นก็เกิดจากการเขียนโค้ดของผู้พัฒนาที่ไม่ได้คำนึงถึงการเกิด Bug ตรงจุดนี้นั้นเอง

สำหรับใครที่หาฟังก์ชั่นในการคำนวณ Leap year อยู่นั้นเดี๋ยวผมจะแปะไว้ข้างล่างนี้ให้ครับ

(code ข้างล่างนี้เป็นภาษา PHP สามารถเอาไปปรับใช้ได้กับภาษาอื่นๆ ได้ครับ)

function checkLeapYear($year) {
   if ($year % '4' != '0') {
     return '28';
   } elseif ($year % '100' != '0') {
     return '29'; // Leap year
   } elseif ($year % '400' != '0') {
     return 28;
   } else {
     return '29'; // Leap year
   }
}

Loading

Leave a Reply

Your email address will not be published. Required fields are marked *