Tags:
Node Thumbnail

ปัญหาเกี่ยวกับการคำนวณวันที่ผิดพลาดนั้นพบได้บ่อยในระบบที่เขียนมาอย่างเลินเล่อ ถ้ายังจำกันได้ปีที่แล้วนั้น Zune ทุกเครื่องหยุดทำงานพร้อมกัน 1 วันเนื่องจากเครื่อง Zune นั้นนึกว่าปีที่แล้วมี 366 วัน (ข่าวเก่า) เหตุการณ์คล้ายกันนี้ก็เกิดขึ้นกับ PlayStation Network เมื่อไม่กี่วันที่ผ่านมาครับ

Patrick Seybold ซึ่งเป็นผู้จัดการด้านการสื่อสารองค์กรของ Playstation Network ได้ออกมาเปิดเผยว่าเครื่อง PlayStation 3 รุ่นเก่าที่ไม่ใช่รุ่น Slim นั้นจะเข้าใจว่าปี 2010 นี้เป็นปีอธิกสุรทิน (ปีที่เดือนกุมภาพันธ์มี 29 วัน) จนทำให้เครื่อง Playstation 3 นั้นทำงานกับเครือข่าย PlayStation Network ผิดพลาดในวันที่ 1 มีนาคม (เพราะเครื่องเข้าใจว่าเป็นวันที่ 29 กุมภาพันธ์) และเป็นสาเหตุที่ผู้ใช้หลายรายไม่สามารถใช้เครื่องในวันดังกล่าวได้ในที่สุด

สำหรับทางแก้นั้นทาง Sony นั้นได้กล่าวว่าเหตุการณ์ดังกล่าวหายแล้ว (เนื่องจากวันที่ผิดพลาดได้ผ่านไปแล้ว) และแนะนำให้ผู้ใช้ที่เครื่องแสดงวันช้าไป 1 วันนั้นสามารถที่จะตั้งค่าวันที่ได้ใหม่ด้วยตัวเองหรืออัพเดตผ่านอินเทอร์เน็ตครับ

ที่มา: PlayStation Blog

Get latest news from Blognone

Comments

By: nthree
Blackberry
on 2 March 2010 - 23:50 #159911

ชอบบริษัทนี้จิงๆ

By: Pinery
ContributoriPhoneAndroidIn Love
on 2 March 2010 - 23:55 #159913

ฮาจริง :D

By: 21Aki
ContributorAndroidWindows
on 2 March 2010 - 23:59 #159915
21Aki's picture

ปัญหานี้ช่าง..........

By: totiz
ContributoriPhoneAndroidRed Hat
on 3 March 2010 - 00:16 #159924
totiz's picture

เป็นการแก้ไขที่ตรงจุดมากครับ
ปล่อยให้ผ่านไป 1 วัน ก็หายแล้ว

By: BlackMiracle
WriterAndroidUbuntuWindows
on 3 March 2010 - 01:17 #159950

เห็นตอน Zune นั่นฮือฮากันมาก สงสัยคนใช้เยอะกว่ารึปล่าว


Pitawat's Blog :: บล็อกผมเองครับ

By: Perl
ContributoriPhoneUbuntu
on 3 March 2010 - 02:17 #159955 Reply to:159950
Perl's picture

ฮือฮาเพราะเป็น M$..

By: fozarn
iPhone
on 3 March 2010 - 04:05 #159963

แค่วันผิดนี่ถึงกับ กลายเป็นเศษเหล็กเลย!?
ผมรู้สึกกลัวจัง มันคล้ายๆกับ amazon kindle ที่เคยมีปัญหาว่าอยู่ดีๆก็อ่านเนื้หาที่ซื้มาแล้วไม่ได้

เหมือนเป็นกับดักเวลา

เหมือนอยู่ดีๆคอมทั้งโลกก้ใช้งานไม่ได้เมื่อไม่มีอินเตอรเน็ต ถ้าเรา chrome os กัน

ปล
จริงๆวันที่มันไม่น่าผิดได้นี่นา สูตรคำนวนก็มีอยู่ทั่วไป
หรือมันซับซ้อนกว่านั้น?

By: nant
ContributorWindows PhoneRed HatUbuntu
on 3 March 2010 - 07:07 #159971 Reply to:159963

ระบบปฏิทินที่ใช้กันอยู่ทุกวันนี้ซับซ้อนครับ มันไม่ใช่แค่ ทุกๆ ที่ปีจะเป็นปีอธิกสุรธิน มันมีข้อยกเว้นพอสมควรครับ ถ้าจะเอาให้ถูกต้อง 100 %

เช่น คำสั่ง cal ใน linux ยังคำนวนวันในปี คศ400 4000 ผิดอยู่เลย

ทำไมถึงผิด เพราะโลกโครจรรอบดวงอาทิต์เป็นเวลา 365.2442 วัน โดยประมาณ ไม่ใช่ 365.25 วัน ครับ เวลาที่ผิดพลาดไปมันจะสะสมไปเรื่อยๆ เลยต้องมี ปีซักปี ที่จะต้อง กำจัดความผิดพลาดนี้ทิ้งไป

โดยการเพิ่มวันไปอีก 1 วัน ใช่ใหมครับ

แต่บังเอิญว่าหนึ่งวันนี้ มันก็ทำให้มีข้อผิดพลาดอีก เพราะการเพิ่มไปหนึ่งวันนี้มันจะทำให้ปฏิทินเร็วไปนิดหน่อย

เลยต้องมีการแก้ปัญหาโดยการทำให้ปอธิกสุรธินบางปี มี 28วัน คือ ยกเลิกปีอธิกสุธินไปนั้นไปเลย

(ขออภัยที่ผมจำการคำนวนโดยละเอียดไม่ได้)

By: ipats
ContributorNOOBIn Love
on 3 March 2010 - 09:08 #159993 Reply to:159971

ถ้าผมจำไม่ผิด หลักปัจจุบันทั่วไปที่ใช้คือ 365.2425 วันต่อปีครับ (ค่าจริงๆ จะน้อยกว่านี้หน่อย .242... จำไม่ได้) เลยทำให้คำนวณกันง่ายๆ ได้ว่า ทุกๆ 4 ปี ยกเว้นปีที่หาร 100 ลงตัว ต้องเป็นทุกๆ 400 ปี (ตามสูตรคอมเมนท์ด้านล่าง) ซึ่งค่าที่ผิดพลาดเล็กๆ นี้ ต้องยาวนานเกือบๆ หมื่นปีครับ ถึงจะเห็นวันที่คลาดเคลื่อน (ซึ่ง PS3 คงอยู่ไม่ถึงร้อยปีด้วยซ้ำมั๊ง)


iPAtS

By: fozarn
iPhone
on 3 March 2010 - 13:42 #160043 Reply to:159993

ขอบคุณครับ ผมหมายถึงแบบที่คุณยกมานี่แหละ

ผมเข้าใจว่ามันมีโอกาศผิดได้ แต่ไม่ควรผิดใน100-200 ปีนี้ครับ

1 year = 365.2421897 days

ปล. จริงๆแล้วมันควรจะแม่นยำไปจนถึงปี 3200 เลยทีเดียว

http://en.wikipedia.org/wiki/Tropical_year#Calendar_year

By: polaromonas
ContributorWindows PhoneWindows
on 3 March 2010 - 18:58 #160099 Reply to:159963

คงไม่ใช่เศษเหล็กมังครับ ก็แค่เข้า PSN ไม่ได้ไม่ใช่เหรอ??

By: saknarak
Android
on 3 March 2010 - 07:00 #159973
saknarak's picture

ณ ช่วงเวลาปัจจุบัน ปีอธิกสุรทิน คือปีที่หาร 4 ลงตัว แต่หาร 100 ไม่ลงตัว แต่หาร 400 ลงตัว
isLeap = (year%4==0 && year%100 != 0) || year%400==0;

แต่ 2010 นี่ หาร 4 ยังไม่ลงตัวเลย
คิดไปได้ยังไงว่ามี 29 วัน

By: nant
ContributorWindows PhoneRed HatUbuntu
on 3 March 2010 - 07:10 #159975 Reply to:159973

ครับ ภ้าคำนวนเวลาในปัจจุบันแค่นี้ก็พอ ต่ถ้าเวลามากมายเป็นนับพันนับหมื่นปี มันมีมากกว่านี้ เพราะไอ้ทศนิยมเล็กๆ ข้างหลังมัันคือปัญหา

By: meawwat
ContributoriPhoneAndroidSymbian
on 3 March 2010 - 07:28 #159978 Reply to:159975
meawwat's picture

ผมคิดกลับกันครับ ผมว่าควรใช้สูตรพื้นๆที่คำนวณถูกต้องใน 20 - 30 ปี นี้ก็พอ(จริงๆ กำหนดตายตัวเลยยังได้) เพราะผมไม่เชื่อว่าเครื่อง ps (หรือ zune) มันจะอายุยืนไปมากกว่านั้น - -"

By: jane
AndroidUbuntu
on 3 March 2010 - 08:42 #159988 Reply to:159978
jane's picture

นึกถึง y2k ที่ผ่านมาไม่นาน

By: rabbitch on 3 March 2010 - 22:59 #160128 Reply to:159978

เดี๋ยวคนรุ่นหลังไม่มีดูนะ ถ้าปล่อยให้ทำงานได้แค่ไม่เกิน 20 ปี สู้ Famicom ไม่ได้ไม่ต้องใช้วันที่ เล่นได้ตลอด

By: neizod
ContributorTraineeIn Love
on 3 March 2010 - 15:12 #160065 Reply to:159975
neizod's picture

สงสัยจังว่าเค้าเอาจุดไหนเป็นวันเริ่มต้นคำนวน
เพราะมันจะมีจุดยกเว้นที่ประหลาดอยู่บ้าง เช่น วันที่ 5 ถึง 14 ตุลาคมหายไปในปี ค.ศ.1582
http://th.wikipedia.org/wiki/ปฏิทินเกรโกเรียน

ถ้าผมเขียนโปรแกรมนะ จะสั่งให้วันแรกที่ใช้คำนวนเป็นวันแรกของปีที่จำหน่ายเครื่องนั้นๆ พอ
หรือไม่งั้นก็ยึดเอาตามปี ค.ศ.2000 ไปเลย ง่ายดี
อายุการใช้งานเครื่องพวกนี้คงไม่เกิน 5 ปี แต่ก็เขียนเผื่อไว้ให้ไม่ผิดซัก 50 ปีพอละ

เขียนย้อนไปไกลๆ หรือเผื่ออนาคตไว้เยอะๆ แล้วเสียวพลาด ^^"

By: fozarn
iPhone
on 3 March 2010 - 13:28 #160042 Reply to:159973

ผมก็หมายถึงสูตรนี้ละครับ มันก็ไม่น่าผิดภายใน 100 ปีนะครับ

By: thedesp
WriterAndroidWindows
on 3 March 2010 - 09:09 #159994
thedesp's picture

ของฟรีก็แบบนี้แหละ ทำใจ

By: kurosame
ContributoriPhone
on 3 March 2010 - 15:08 #160064
kurosame's picture

งี้แผ่นดินไหวทำแกนโลกเอียงก็ต้องมา fix bug ใหม่สิ


{$user} was not an Imposter

By: Lightwave
iPhoneAndroidWindows
on 3 March 2010 - 15:40 #160073

แล้วมันสามารถทำให้การคำนวนถูกเป๊ะๆ ปะครับ

อ่านข้างบนแล้วไม่รู้ว่าเค้าคุยไรกัน ผมโง่ครับ อิอิ

By: fozarn
iPhone
on 3 March 2010 - 19:26 #160101 Reply to:160073

เป๊ะๆเลยคงเป็นไปได้ยากนะครับ เพราะหลายๆปัจจัยมันเปลี่ยนแปลงอยู่ตลอด เช่น
1. ความเร็วที่ดวงอาทิตย์หมุนเชิงมุมในgalaxy เปลี่ยนแปลงอยู่ทีละนิด
2. อัตราการโคจรรอบดวงอาทิตย์ของโลกไม่คงที่

ดังนั้น เวลาที่โลกใช้ในการหมุนรอบดวงอาทิตย์ ที่เราเรียกว่า 1 ปี กันจึงเปลี่ยนไปเรื่อยๆ
เช่น ปี 1900 1 ปี = 365.2421987 วัน
ปี 2000 1 ปี = 365.2421897 วัน

By: mr_tawan
ContributoriPhoneAndroidWindows
on 3 March 2010 - 19:47 #160107
mr_tawan's picture

เห็นว่า Zune ก็เคยเจอปัญหาแบบนี้ แล้วเล่นเอาเครื่องเจ๊งไปเลยอีกต่างหาก

ไมโครซอฟท์บอกว่า "วิธีแก้คือ สูบแบตเตอรี่ออกให้หมด แล้วชาร์จไฟเ้ข้าไปใหม่หลังเที่ยงวันปีใหม่ 2009" ...

ผมว่าทางแก้มันก็ไม่ได้ฟังแย่อะไรนะครับเอาเข้าจริง ๆ คือมันเป็นอะไรที่มันแก้ไขเฉพาะหน้าได้ง่าย ๆ ส่วนทางแก้ระยะยาวก็ออกมากับ OS หรือ Firmware ตัวใหม่ก็ยังไม่สาย

(อย่าบอกใครนะ ผมปิด Ticket ด้วยวิธีนี้บ่อยเหมือนกัน 555)

ถ้ามันเป็นปัญหาประเภท ... เปิดไม่ติดอีกเลย นี่สิ งานเข้าของแท้ = ='


  • 9tawan.net บล็อกส่วนตัวฮับ