首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你知道吗?Excel中日期对应的数字其实是错误的!

众所周知,excel中的日期实际上是以数字的方式存储的。

比如:1900-1-1对应数字1,1900-1-2对应数字2,以此类推。

很简单吧?!

但如果你用这样的逻辑来计算日期时,会发现计算出来的日期和 excel 中不一样。

比如45106在excel中为2023-6-29,而计算结果却是2023-6-30,尝试了用其他语言进行计算,结果都是2023-6-30。

相同数字的情况下excel显示的日期和计算结果不一致,有一个必定是错误的,于是乎从头开始试吧!!

从1开始算,到了60就发现日期不一样了,excel中60对应1900-2-29,而计算结果是1900-3-1。

再试下59,两者结果是一样的,那么问题就出在60上了。

再仔细看下——excel中是2月29号,掐指一算,1990年不是闰年,没有29号才对,看来是excel错了。

为再更加确信是exel的错,于是请教了GPT大神。

果然,微软也知道这个bug,但微软表示“我就是不改”。

其实保留这个bug也是出于无奈,在excel问世前,电子表格的鼻祖之一 Lotus-1-2-3 已存在这个问题,为了兼容Lotus,微软只能保留这个bug,以防止打开以往的工作表时日期出现错误,后来就一直以“错误的数字,正确的显示”的方式继续错下去。

平常我们不用去关心日期背后的数字是否正确,只需要显示是正确就行了。对于程序员来说,大多数情况也是直接读取出日期,但如果你是先读取数字再换算成日期(比如手写代码来解析xlsx),就要注意了,xml文件中代表日期的数字在1900-2-28之后需要减1。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OrkQ4tL70pEmEpmXrlpOn2yg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券