ปัญหาปี ค.ศ. 2000

จากวิกิพีเดีย สารานุกรมเสรี
ตัวอย่างระบบประมวลผลจากปัญหา Y2K ในวันที่แสดงคือวันที่ 3 มกราคม ค.ศ.2000 แต่ระบบประมวลผลว่าเป็นวันที่ 3 มกราคม ค.ศ.1900

ปัญหาปี ค.ศ. 2000 บางครั้งเรียกว่า ปัญหาวายทูเค (Y2K problem) เป็นปัญหาที่เกิดกับระบบเอกสารและการบันทึกข้อมูล ทั้งในแบบดิจิตอล (เกี่ยวกับคอมพิวเตอร์) และระบบอนาล็อก สืบเนื่องมาจากการบันทึกปีคริสต์ศักราชจำนวนสี่หลัก ย่อเหลือเพียงสองหลักท้าย โดยละสองหลักแรก คือ "19" และ "20" ไว้ในฐานที่เข้าใจ

ปัญหาจะเกิดขึ้นเมื่ออุปกรณ์ต่างๆ ใช้งานจนถึงหลังเที่ยงคืนของวันที่ 31 ธันวาคม ค.ศ. 1999 และเข้าสู่วันที่ 1 มกราคม ค.ศ. 2000 แต่ระบบกลับเข้าใจว่าเป็น ค.ศ. 1900 ทำให้การทำงานของระบบผิดเพี้ยน

ปัญหานี้ถูกหยิบยกมากล่าวถึงเป็นครั้งแรกในหนังสือชื่อ Computers in Crisis เขียนโดย Jerome และ Marilyn Murray ในปี ค.ศ. 1984 และในเครือข่ายยูสเนต ในปี ค.ศ. 1985 [1] สร้างความตื่นตัวในแวดวงธุรกิจ การธนาคาร การแพทย์ และการทหาร ว่าอาจทำให้ระบบคอมพิวเตอร์ทำงานผิดพลาด อาจทำให้ระบบสาธารณูปโภค เช่น ไฟฟ้า โทรศัพท์ ระบบอาณัติสัญญาณ ถึงขั้นหยุดการทำงาน

ความหมายของคำว่า Y2K[แก้]

Y2K คือคำย่อของ Year 2000 ซึ่งหมายถึงปี ค.ศ. 2000 โดย Y ย่อมาจากคำว่า Year, K เป็นหน่วยในการวัดค่าต่างๆ ในระบบเมตริก มีค่าเท่ากับ 1000 2K จึงมีค่า 2x1000 เท่ากับ 2000[2]

สาเหตุ[แก้]

  • การเก็บข้อมูลปี ค.ศ. เฉพาะแค่ 2 หลักท้ายแทนที่จะเก็บเต็ม 4 หลักโดยถือว่า 2 หลักหน้าคือ 19 เสมอ เช่น ค.ศ. 1998 จะเก็บแค่เพียง 98 ดังนั้นข้อมูลในระบบจึงมีค่าอยู่ในช่วงระหว่างปี ค.ศ. 1900-1999 เท่านั้น เมื่อถึงปี ค.ศ. 2000 คอมพิวเตอร์ยังคงถือว่า 2 หลักหน้าคือ 19 อยู่เหมือนเดิม เมื่อป้อนปีเป็น 00 ซึ่งหมายถึงปี ค.ศ. 2000 คอมพิวเตอร์ยังคงตีความว่าเป็นปี ค.ศ. 1900 เหมือนเดิม คังนั้นการคำนวณเกี่ยวกับระยะเวลา เช่น การคำนวณอายุ การคำนวณระยะเวลา การชำระหนี้และการเรียงลำดับข้อมูลจึงผิดพลาดหมด
  • การคำนวณปีอธิกสุรทิน ไม่ถูกต้องทำให้เดือนกุมภาพันธ์ปี ค.ศ. 2000 มีเพียง 28 วันเท่านั้น ทำให้การคำนวณหาวันที่ในปี (Day of Year) หลังเดือนกุมภาพันธ์ผิดพลาดหมด กฎในการคำนวณปีอธิกสุรทินที่ถูกต้องคือ
1. ปีที่หารด้วย 4 ลงตัวจะเป็นปีอธิกสุรทิน
2. ปีที่หารด้วย 100 ลงตัวจะเป็นและไม่เป็นปีอธิกสุรทิน
3. ปีที่หารด้วย 400 ลงตัวจะเป็นปีอธิกสุรทิน

หากสลับกฎข้อ 2 และกฎข้อ 3 จะทำให้การคำนวณปีอธิกสุรทินของ ปี ค.ศ. 2000 ผิดพลาด

  • ช่วงก่อนวันที่ 1 มกราคม ค.ศ. 2000 จะเกิดปัญหา Y2K แต่มีอีกวันที่มีปัญหาคล้ายกันวันที่ 9 กันยายน ค.ศ. 1999 เพราะวันนี้อาจจะมีการเขียนในรูปแบบตัวเลข 9/9/99 ก็จะได้ขัดแย้งกับค่าวันที่ 9999 ที่ใช้บ่อยในการระบุวันที่ทราบ มันจึงเป็นไปได้ว่าโปรแกรมฐานข้อมูลอาจจะทำหน้าที่ในระเบียนที่มีวันที่ไม่รู้จักในวันนั้น ค่อนข้างคล้ายกับนี้คือรหัสสิ้นสุดของแฟ้ม 9999 ที่ใช้ในการเขียนโปรแกรมภาษาที่มีอายุมากกว่า ในขณะที่ความกลัวเกิดขึ้นที่บางโปรแกรมไม่คาดคิดอาจยุติในวันที่ข้อผิดพลาดก็มีแนวโน้มที่จะทำให้ระบบประมวลผลของคอมพิวเตอร์
  • การแทนวันและเวลาโดยการนับจากเวลาอ้างอิงในอดีต เช่น ระบบหาตำแหน่งด้วยดาวเทียม (GPS) จะใช้ตัวเลขขนาด 10 บิต (Bits) แทนค่าเวลาเป็นสัปดาห์ นับตั้งแต่เดือนมกราคม 1980 เป็นต้นมา ซึ่งจะแทนค่าได้ 1024 สัปดาห์ และจะ Roll Over ในวันที่ 21 สิงหาคม 1999 ระบบ Unix เก็บวันและเวลาโดยการแทนค่าวินาทีนับตั้งแต่วันที่ 1 มกราคม 1970 ด้วยตัวเลขขนาด 32 บิต ซึ่งจะ Roll Over ในปี 2038 เป็นต้น

อ้างอิง[แก้]