กรณีทดสอบ |
เหตุผล |
1 มกราคม 2443 เป็นวันจันทร์ |
ตรวจสอบ function ที่มีอยู่ว่าไม่ถูกเปลี่ยนแปลง |
28 กุมภาพันธ์ 2443 เป็นวันพุธ |
ตรวจสอบ function ที่มีอยู่ว่าไม่ถูกเปลี่ยนแปลง |
1 มีนาคม 2443 เป็นวันพฤหัสบดี |
ไม่มีวันที่ 29 กุมภาพันธ์ในปี พ.ศ.2443 |
28 กุมภาพันธ์ 2542 เป็นวันอาทิตย์ |
ตรวจสอบ function ที่มีอยู่ว่าไม่ถูกเปลี่ยนแปลง |
1 มีนาคม 2542 เป็นวันจันทร์ |
ตรวจสอบ function ที่มีอยู่ว่าไม่ถูกเปลี่ยนแปลง |
31 ธันวาคม 2542 เป็นวันศุกร์ |
ตรวจสอบ function ที่มีอยู่ว่าไม่ถูกเปลี่ยนแปลง |
1 มกราคม 2543 เป็นวันเสาร์ |
แตกต่างจากวันที่ 1 มกราคม 2443 ซึ่งเป็นวันจันทร์ |
28 กุมภาพันธ์ 2543 เป็นวันจันทร์ |
แตกต่างจากวันที่ 28 กุมภาพันธ์ 2443 ซึ่งเป็นวันพุธ |
29 กุมภาพันธ์ 2543 เป็นวันอังคาร |
ไม่มีวันที่ 29 กุมภาพันธ์ในปี พ.ศ. 2443 |
1 มีนาคม 2543 เป็นวันพุธ |
ตรวจสอบว่าวันที่ 29 กุมภาพันธ์ 2543 มีอยู่ |
1 มกราคม 2544 เป็นวันจันทร์ |
ตรวจสอบว่าปี 2543 มีจำนวนวันเท่ากับ 366 วัน |
28 กุมภาพันธ์ 2547 เป็นวันเสาร์ |
ตรวจสอบการคำนวณปีอธิกสุรทินว่าถูกต้อง |
29 กุมภาพันธ์ 2547 เป็นวันอาทิตย์ |
ตรวจสอบการคำนวณปีอธิกสุรทินว่าถูกต้อง |
1 มีนาคม 2547 เป็นวันจันทร์ |
ตรวจสอบการคำนวณปีอธิกสุรทินว่าถูกต้อง |
วิธีแก้ |
อธิบาย |
Physical Fix |
แก้ปีจากเลข 2 หลักเป็นเลข 4 หลัก วิธีนี้ต้องแก้ทั้งตัวข้อมูลในฐานข้อมูล และตัวซอฟต์แวร์ที่ใช้ข้อมูล |
Logical Fix |
ระบุการตีความว่าหากเลขสองหลักมากกว่า xx ให้นับเป็นปี 19xx มิฉะนั้น ให้นับเป็นปี 20xx วิธีนี้แก้แต่ตัวซอฟต์แวร์ ไม่ต้องแก้ข้อมูล |
Sliding Window |
คล้าย Logical Fix แต่เลื่อนตัวเลข xx ได้ |
Combined Physical and Logical Fix |
แก้หน้าจอ ให้แสดงหรือรับข้อมูลเป็นเลข 4 หลัก แต่ในส่วนของข้อมูลภายในอาจยังแก้ไม่ทัน ยังคงเป็นเลขสองหลักอยู่ |
Data Compression |
ย่อส่วนข้อมูลวันที่เพื่อเก็บให้ที่เก็บขนาดเดิมในฐานข้อมูล และเวลาจะใช้ให้นำมาขยาย วิธีนี้จะช้า ถ้าต้องมีการคำนวนด้วยวันที่มากๆ |
Day counter |
นับจำนวนวัน "ตั้งแต่วันที่ที่ระบุ อาทิ จำนวนวันตั้งแต่ 1 มกราคม ค.ศ. 0000 และเวลานำเสนอนำมาคำนวนเป็น วัน เดือน ปีจริงอีกที |