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

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

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

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

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

Y2K คือคำย่อของ Year 2000 (Year 2 kilo) ซึ่งหมายถึงปี ค.ศ. 2000 โดย Y ย่อมาจากคำว่า Year (ปี), k (กิโล) เป็นคำอุปสรรคในระบบเอสไอ มีค่าเท่ากับ 103 หรือ 1000 2k จึงมีค่า 2×1000 เท่ากับ 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 เป็นต้น

อ้างอิงแก้ไข