วิธีง่าย ๆ ในการคำนวณอายุคือการลบปีเกิดออกจากปีปัจจุบัน แต่วิธีนี้ให้ผลลัพธ์ผิดพลาดสำหรับทุกคนที่วันเกิดในปีนี้ยังไม่มาถึง — และวันเดียวนั้นเองที่เป็นตัวชี้ขาดว่าใครสักคนบรรลุนิติภาวะแล้วหรือยัง
เหตุใดการลบปีแบบง่าย ๆ จึงผิดพลาด
หากใครสักคนเกิดวันที่ 15 ธันวาคม 1990 และวันนี้คือวันที่ 1 มกราคม 2024 การคำนวณแบบง่าย 2024 - 1990 จะได้ 34 ปี — แม้ว่าจริง ๆ แล้วคนนั้นจะอายุครบ 34 ปีอีกเกือบหนึ่งปีข้างหน้า การคำนวณที่แม่นยำต้องตรวจสอบว่าวันเกิดในปีนี้ผ่านไปแล้วหรือยัง ไม่ใช่แค่ผลต่างของปี
อัลกอริทึมที่ถูกต้อง
ก่อนอื่นคำนวณผลต่างของปี จากนั้นเปรียบเทียบเดือนและวันเกิดกับเดือนและวันปัจจุบัน หากวันเกิดในปีนี้ยังไม่ผ่านไป (เดือนก่อนหน้า หรือเดือนเดียวกันแต่วันก่อนหน้า) ให้ลบหนึ่งออกจากผลลัพธ์
29 กุมภาพันธ์เป็นกรณีพิเศษ
สำหรับคนที่เกิดวันที่ 29 กุมภาพันธ์ ในปีที่ไม่ใช่ปีอธิกสุรทิน วันเกิดมักถือเป็นวันที่ 28 กุมภาพันธ์หรือ 1 มีนาคม ขึ้นอยู่กับบริบท — นี่เป็นหนึ่งในกรณีขอบเขตที่มักถูกมองข้ามเมื่อเขียนโค้ดคำนวณอายุ
ทำไมต้องใช้สิ่งนี้
- คำนวณอายุอย่างแม่นยำสำหรับแบบฟอร์มลงทะเบียนที่ตรวจสอบการบรรลุนิติภาวะ
- ตรวจสอบว่าโค้ดของคุณจัดการกรณีขอบเขตอย่างถูกต้อง (29 กุมภาพันธ์ วันเกิดวันนี้)
- รับอายุที่แน่นอนเป็นปี เดือน และวันจากวันเกิดได้อย่างรวดเร็ว
ทำไมการบรรลุนิติภาวะของไทยจึงอยู่ที่ 20 ปี ไม่ใช่ 18 ปี
ตามประมวลกฎหมายแพ่งและพาณิชย์ของไทย บุคคลจะบรรลุนิติภาวะเมื่ออายุครบ 20 ปีบริบูรณ์ หรือเมื่อสมรสโดยชอบด้วยกฎหมาย ซึ่งต่างจากหลายประเทศที่กำหนดไว้ที่ 18 ปี ดังนั้นแบบฟอร์มหรือระบบที่ตรวจสอบ "ผู้ใหญ่ตามกฎหมาย" แบบเหมารวมที่ 18 ปีจากต่างประเทศ อาจไม่สอดคล้องกับนิยามทางกฎหมายของไทยเลย