อย่างที่ฉันแน่ใจว่าคุณรู้อยู่แล้วว่าฟีเจอร์ Do Not Disturb ที่ Apple เปิดตัวพร้อมกับ iOS 6 หยุดทำงานอย่างที่ควรจะเป็นในวันอังคารที่โลกเปลี่ยนไปในปี 2013 แม้ว่าจะไม่มีปัญหาในการเปิดใช้งานตัวเองเมื่อได้รับคำสั่ง แต่ก็ไม่เข้าใจว่าควรปิดเมื่อใด หมายความว่าผู้ใช้ต้องทำด้วยตนเองไม่เช่นนั้นพวกเขาจะพลาดการแจ้งเตือน
Apple สัญญาว่าคุณลักษณะนี้จะแก้ไขตัวเองโดยอัตโนมัติในวันที่ 7 มกราคม แต่เหตุใดจึงหยุดทำงานตั้งแต่แรก และทำไมจู่ๆ มันก็เริ่มทำงานอย่างที่ควรจะเป็นในวันจันทร์? ดูเหมือนว่า Apple จะมีปัญหาในการจัดการวันที่และเวลา
หลังจากการทดสอบเล็กน้อย Richard Gaywood ที่ TUAW พบว่าฟีเจอร์ Do Not Disturb ใน iOS 6 จะไม่เปลี่ยนเป็นปีใหม่จนกว่าจะถึงวันจันทร์แรกของปีนั้น ตัวอย่างเช่น ถ้าวันแรกของปี 2013 เป็นวันจันทร์ ก็จะไม่เป็นปัญหา แต่เนื่องจากเครื่องลงจอดในวันอังคาร เราจึงต้องรอจนถึงวันจันทร์ถัดไปเพื่อให้ DND ทำงานได้อย่างตรงจุด
เหตุผลเบื้องหลังนี้ดูเหมือนจะเป็นข้อผิดพลาดในการเข้ารหัสอย่างง่ายจาก Apple กล่าวโดยย่อ แทนที่จะระบุปีเป็น “ปปปป” ให้ระบุในรหัสเป็น “ปปปป” ความแตกต่างนั้นง่าย ตัวหนึ่งเขียนด้วยอักษรตัวพิมพ์เล็กในขณะที่อีกตัวไม่เขียน ซึ่งอาจดูเหมือนไม่สำคัญสำหรับพวกคุณบางคน ถึงฉัน; แต่เห็นได้ชัดว่าการเปลี่ยนแปลงนั้นสร้างความแตกต่างอย่างมากเพราะใช้ระบบหมายเลขสัปดาห์ ISO
ระบบการนับสัปดาห์ ISO ใช้รูปแบบ YYYY สำหรับปีแทนปฏิทินเกรกอเรียนที่เราคุ้นเคยทั้งหมดที่ใช้ yyyy สิ่งที่ระบบ ISO ทำคือดูสัปดาห์ของปี จากนั้นใช้ตัวเลขวันที่ที่มี 1 เริ่มตั้งแต่วันจันทร์ ตัวอย่างเช่น วันอังคารของสัปดาห์ที่ 50 ของปี 2012 จะเป็น 2012-W50-2 ในรูปแบบสัปดาห์ ISO
Gaywood อธิบายว่าทำไมการใช้วิธีนี้ถึงเป็นปัญหา:
มาตรฐาน ISO กำหนดสัปดาห์แรกของปีโดยเริ่มจาก “วันจันทร์ที่มีวันพฤหัสบดีแรกของเดือนมกราคม” ภายใต้คำจำกัดความนี้ สองสามวันแรกของปีที่เราเขียนว่า “2013” จะถูกนับเป็นส่วนหนึ่งของปี 2555 แทน 2013 ยังไม่เริ่มจนถึงวันจันทร์ที่ 7 มกราคม เป็นสิ่งที่นักบัญชีชอบใช้เพื่อทำให้ทุกอย่างเรียบร้อยและเป็นระเบียบเรียบร้อย ที่น่าสนใจคือวันที่ 7 มกราคมคือเวลาที่ Apple บอกปัญหาจะหมดไป. อ่าฮะ!
ในฐานะเพื่อนของเราที่ อาส เทคนิค ได้ชี้ให้เห็นว่าสิ่งที่น่างงงวยเกี่ยวกับข้อผิดพลาด DND คือว่า เอกสารของ Apple เองเตือนนักพัฒนา เกี่ยวกับวิธีหลีกเลี่ยงข้อผิดพลาดทั่วไปนี้
ดังนั้นระหว่างวันที่ 1 มกราคมถึง 6 มกราคม DND ยังคงคิดว่าเป็นปี 2012 ส่วนหนึ่งของมันก็เป็นเช่นนั้น น่าแปลกที่บิตที่จัดการการเปิดใช้งานคุณสมบัติทำงานตามที่ควรจะเป็นในขณะที่การปิดใช้งานการจัดการบิตไม่ทำงาน อย่างไรก็ตาม ในวันจันทร์แรกของปี จะเข้าสู่ปี 2013 นั่นคือสาเหตุที่ DND จะทำงานตามที่ควรจะเป็นตั้งแต่วันที่ 7 มกราคม
สิ่งที่น่าสนใจคือ นี่ไม่ใช่ครั้งแรกที่ Apple มีปัญหากับวันที่ใน iOS มีปัญหาเวลาออมแสงในปี 2010, 2011 และอีกครั้งในปี 2012 ในขณะที่ปัญหาล่าสุดกับแอพปฏิทินทำให้แอปหยุดทำงานหากคุณอาจนัดหมายตลอดทั้งวันในวันที่ 1 เมษายน 2013
“มันจะไม่ยุติธรรมที่จะอธิบายชื่อเสียงของ Apple ในด้านการจัดการวันที่และเวลาว่า 'ค่อนข้างแย่'” Gaywood กล่าวสรุป
อย่าคาดหวังว่าแพทช์ของการอัปเดตซอฟต์แวร์ในวันที่ 7 มกราคมจะแก้ไข DND ได้ เพียงแค่คาดหวังว่ามันจะทำงานได้ตามที่ควรจะเป็น
แหล่งที่มา: TUAW