29 - 30 กุมภาพันธ์ - 1001

Post Reply
brid.kavee
Posts: 256
Joined: 05 Apr 2013, 08:51

29 - 30 กุมภาพันธ์ - 1001

Post by brid.kavee »

ladawan
Hero Member
*****
Posts: 824


View Profile Email


29 - 30 กุมภาพันธ์ - 1001
« on: January 26, 2013, 09:14:32 am »

29 - 30 กุมภาพันธ์ - 1001


สวัสดีครับท่านผู้อ่านทุกท่าน ผมขอหยิบประเด็นเล็ก ๆ แต่ไม่เล็ก ซึ่งดูเหมือนผู้คนในสังคมจะตระหนักรับรู้ว่า มีเรื่องราวแสนประหลาดแบบนี้เกิดขึ้นในเมืองไทย

ผมนึกจะเขียนเรื่องนี้ก็เพราะว่า เมื่อสองวันก่อน คุณวีระพันธ์ โตมีบุญ ผู้ช่วยบก.ข่าวเว็บไซต์เดลินิวส์ โทรฯคุยกับผมถึงความเป็นไปได้ของการเกิดเหตุการณ์ที่ระบบคอมพิวเตอร์จะยอมบันทึกวันที่ 30 กุมภาพันธ์ลงไปในฐานข้อมูลของตัวเอง ว่ามันเกิดขึ้นจากสาเหตุใดได้บ้าง ผมเลยนึกขึ้นมาได้ว่า นอกจากวันที่ 30 กุมภาพันธ์แล้ว ยังมีวันที่ 29 กุมภาพันธ์ ที่น่าสนใจไม่แพ้กันอีกด้วย

สำหรับเรื่องสาเหตุของวันที่ 30 กุมภาพันธ์ ที่ถูกบันทึกลงไปในฐานข้อมูลนั้นเกิดได้จากหลายสาเหตุมากครับ ไล่ตั้งแต่ข้อมูลระดับไบต์เกิดผิดพลาดขึ้นมาในระดับการออกแบบฐานข้อมูล จนถึงตัวโปรแกรมที่ใช้แสดงผลและสั่งพิมพ์ แต่ผมคงไม่เลือกเดาว่าเป็นสาเหตุใด เพราะผมอยู่ไกลจากแหล่งความจริงในเรื่องนี้มากครับ

แต่คุณผู้อ่านทราบไหมครับว่า โอกาสเกิดวันที่ 30 กุมภาพันธ์ นั้นเป็นไปไม่ได้

แต่โอกาสที่จะเกิดวันที่ 29 กุมภาพันธ์ก็น้อยมากเช่นกัน บางท่านอาจจะนึกว่า 29 กุมภาพันธ์ จะเวียนมาในทุก ๆ 4 ปี แต่จริง ๆ แล้วหาเป็นเช่นนั้นไม่ครับ เพราะการเกิด 29 กุมภาพันธ์นั้น จะเกิดได้ก็ต่อเมื่อปี (นับเอาปีคริสตศักราช) นั้น ๆ หารด้วย 4 ลงตัว แต่ต้องหารด้วย 100 ไม่ลงตัว เดือนกุมภาพันธ์ของปีนั้นจึงจะมี 29 วัน แต่ถ้าปีใดเป็นปีที่หารด้วย 400 ลงตัว ปีนั้นจะมีเดือนกุมภาพันธ์ 29 วันทันที

สืบเนื่องจากสาเหตุที่ว่า แท้จริงแล้ว โลกเราเคลื่อนที่รอบดวงอาทิตย์ใช้เวลาประมาณ 365.242199074 วัน ไม่ใช่ 365.25 วันตามที่ปฏิทินจูเลียนคิดไว้

โห...ปีหนึ่งต่างกันแค่ 0.007800926 วันเอง ไม่น่าจะซีเรียสกันเลย คำนวณแบบ 4 ปีมี 29 กุมภาพันธ์ 1 ครั้ง ก็ไม่น่าจะเป็นอะไร

คำตอบเรื่องนี้จะโยงไปถึงเรื่องของความแม่นหรือ precision ของเลขทศนิยมด้วยครับ ซึ่งจะมีผลอย่างยิ่งในกรณีคำนวณดอกเบี้ยในบัญชีของธนาคาร การคำนวณภาษีมูลค่าเพิ่ม หรือการนำเงินไปชำระบัตรเครดิต ยกตัวอย่างเช่น สมมุติว่า บัตรเครดิตใบหนึ่งเรียกเก็บเงินคุณ 1,000.35 บาท แน่นอนว่า คุณต้องจ่าย 1,000.50 บาท เกินไป 15 สตางค์ใช่ไหมครับ สำหรับคุณคนเดียว ก็คงมีแค่ 15 สตางค์ แต่ถ้ามีลูกค้าเป็นล้านคน อะไรจะเกิดขึ้นครับ

ใช่แล้วครับ บริษัทบัตรเครดิตดังกล่าว จะได้รับเงินเกินไป 150,000 บาท ต่อหนึ่งรอบบิลทีเดียวเชียวครับ

คราวนี้เราย้อนกลับมาที่วันของปฏิทินจูเลียนกันต่อ ถ้าหนึ่งปีคลาดเคลื่อนไป 0.007800926 วัน แล้วปฏิทินที่ถูกใช้มาแล้ว 2,000 ปี ก็เท่ากับว่า จะมีวันหายไปถึง 15.6 วัน ดังนั้นในปี ค.ศ.1582 พระเจ้าสันตะปาปา เกรโกรีที่ 13 จึงประกาศใช้ปฏิทินเกรโกเรียน ซึ่งมีการปรับวันให้ใกล้เคียงกับการโคจรของโลกมากขึ้น และยังคงใช้มาจนทุกวันนี้

ซึ่งจำนวนวันของเดือนกุมภาพันธ์นี้ยังก่อให้เกิดปัญหากับโปรแกรมบางโปรแกรม เช่น ในโปรแกรมไมโครซอฟต์ เอ็กซ์เซลเอง ก็คำนวณวันคลาดเคลื่อน สืบเนื่องมาจากสาเหตุของการใช้ข้อมูลร่วมกันระหว่างโปรแกรมตารางคำนวณอื่น ๆ เพราะโดยปกติแล้ว ในปีที่หารด้วย 4 ลงตัว ก็จะมี 29 วัน แต่ดันมีข้อยกเว้นในปีที่หารด้วย 100 ลงตัว ซึ่งปีที่จะเข้ามาเกี่ยวข้องกับผู้คนในยุคนี้ คือ ปี ค.ศ. 1900 และปี ค.ศ. 2000 โดยในปี ค.ศ. 1900 นั้น แม้จะหารด้วย 4 ลงตัว แต่ก็หารด้วย 100 ลงตัวด้วย ทำให้ในปี ค.ศ. 1900 นั้น จำนวนวันในเดือนกุมภาพันธ์จะต้องมีแค่ 28 วัน ถ้าคุณผู้อ่านลองใช้ฟังก์ชัน WEEKDAY(“2/16/1900”,1) ในโปรแกรม Microsoft Excel มันจะให้ผลลัพธ์เป็น 5 ซึ่งหมายถึงวันพฤหัสบดี แต่แท้จริงแล้ววันที่ 16 กุมภาพันธ์ ค.ศ.1900 เป็นวันศุกร์ครับ (อ้างอิงจากsupport.microsoft.com/kb/214058/EN-US) ดังนั้นการคำนวณวันที่ก่อนวันที่ 1 มีนาคม ค.ศ. 1900 คุณผู้อ่านจะต้องบวกหนึ่งเข้าไปด้วยนะครับ ผลลัพธ์จึงจะถูกต้อง

“เห็นไหมครับว่า ยังมีเรื่องอีกมากในโลกไอทีที่น่าสนใจ ไว้ว่าง ๆ ผมจะมาเล่าให้ฟังอีกครับ”.

สุกรี สินธุภิญโญ
sukree.s@chula.ac.th
ภาควิชาวิศวกรรมคอมพิวเตอร์
คณะวิศวกรรมศาสตร์
จุฬาลงกรณ์มหาวิทยาลัย
http//www.facebook.com/1001FanPage

ที่มา : เดลินิวส์ออนไลน์
วันศุกร์ที่ 25 มกราคม 2556 เวลา 00:10 น.
Post Reply

Return to “แจ้งข่าว ไทย ERP และข่าวอื่นๆที่น่าสนใจ”