ทำไม Microsoft จึงถือว่าปีค.ศ.1900 มี 366 วัน (Leap Year) ทั้งๆที่จริงแล้วมีเพียง 365 วัน

☝️ ทำไม Microsoft จึงถือว่าปีค.ศ.1900 มี 366 วัน (Leap Year) ทั้งๆที่จริงแล้วมีเพียง 365 วัน

เรามักจำกันว่า ถ้านำเลขปีค.ศ.หารด้วย 4 ลงตัว ปีนั้นมี 366 วันใช่ไหมครับ
1900/4 = 475

ที่จริงยังมีหลักคิดต่อไปอีกว่า ถ้าเลขปีลงท้ายด้วย 00 หรือหารด้วย 100 ลงตัวให้หารด้วย 400 ด้วย ถ้าลงตัวจึงมี 366 วัน
1900/400 = 4.75 ไม่ลงตัว ดังนั้นจึงมีเพียง 365 วัน

1900

☝️ ทำไม Microsoft จึงถือว่าปีค.ศ.1900 มี 366 วัน ทั้งๆที่ผิด จากภาพนี้ ลองกรอกวันที่ 29/2/1900 ลงไปในเซลล์จะพบว่าชิดขวา แสดงว่า Excel รับรู้ว่าวันที่นี้มีจริง (ทั้งๆที่ไม่ควรมี)

สูตรที่ใช้ตรวจสอบเลขปีที่กรอกไว้ในเซลล์ A1
=IF(OR(MOD(A1,400)=0,AND(MOD(A1,4)=0,MOD(A1,100)<>0)),"Leap Year", "NOT a Leap Year")

สาเหตุที่ Microsoft ตัดสินใจทำผิด ไม่ใช่เพราะคิดพลาดไป แต่เป็นเพราะสมัยนั้นโปรแกรมอื่นทำผิดไว้กันทั้งนั้นครับ โดยเฉพาะ Lotus 1-2-3 ที่ใช้กันทั่วบ้านทั่งเมือง ถ้าทำให้ถูกตั้งแต่แรกจะส่งผลเสียมากกว่าผลดี ตามคำอธิบายด้านล่างนี้

Microsoft Excel incorrectly assumes that the year 1900 is a leap year.

This article explains why the year 1900 is treated as a leap year, and outlines the behaviors that may occur if this specific issue is corrected.

More Information

When Lotus 1-2-3 was first released, the program assumed that the year 1900 was a leap year, even though it actually was not a leap year. This made it easier for the program to handle leap years and caused no harm to almost all date calculations in Lotus 1-2-3.

When Microsoft Multiplan and Microsoft Excel were released, they also assumed that 1900 was a leap year. This assumption allowed Microsoft Multiplan and Microsoft Excel to use the same serial date system used by Lotus 1-2-3 and provide greater compatibility with Lotus 1-2-3. Treating 1900 as a leap year also made it easier for users to move worksheets from one program to the other.

Although it is technically possible to correct this behavior so that current versions of Microsoft Excel do not assume that 1900 is a leap year, the disadvantages of doing so outweigh the advantages.

If this behavior were to be corrected, many problems would arise, including:

1. Almost all dates in current Microsoft Excel worksheets and other documents would be decreased by one day. Correcting this shift would take considerable time and effort, especially in formulas that use dates.

2. Some functions, such as the WEEKDAY function, would return different values; this might cause formulas in worksheets to work incorrectly.

3. Correcting this behavior would break serial date compatibility between Microsoft Excel and other programs that use dates.

☝️ If the behavior remains uncorrected, only one problem occurs:

The WEEKDAY function returns incorrect values for dates before March 1, 1900. Because most users do not use dates before March 1, 1900, this problem is rare.

NOTE: Microsoft Excel correctly handles all other leap years, including century years that are not leap years (for example, 2100). Only the year 1900 is incorrectly handled.

https://learn.microsoft.com/en-us/office/troubleshoot/excel/wrongly-assumes-1900-is-leap-year

https://learn.microsoft.com/en-us/office/troubleshoot/excel/determine-a-leap-year

Related Articles

© Copyright 1999

สงวนลิขสิทธิ์ตามกฎหมาย

ห้ามนำข้อความหรือส่วนหนึ่งส่วนใดของบทความหรือวิดีโอหรือรูปภาพไปใช้เพื่อการค้าขาย หรือเพื่อประโยชน์ส่วนตัว

อนญาตให้นำไปใช้เพื่อสาธารณประโยชน์โดยขอให้ระบุที่มาและชื่อผู้เขียนกำกับไว้ด้วยเสมอ

ลิงก์เว็บ Excel Expert Training

เว็บสำหรับ เรียนออนไลน์

เว็บสำหรับ เรียนแบบกลุ่ม-ส่วนตัว

ติดตามข่าวสารได้จาก facebook

ถามปัญหาได้ที่ กลุ่มคนรัก Excel

และไลน์กลุ่ม Excel Expert Group

ที่อยู่และการติดต่อ

สมเกียรติ ฟุ้งเกียรติ 7/1 รามคำแหง ซอย 35 หัวหมาก บางกะปิ กทม 10240 โทร 097-140-5555, 02-718-9331

Excel@ExcelExpertTraining.com

sfk234x234