当前位置: 首页 > 资讯 > 科技 > 正文
你知道吗?Excel中日期对应的数字其实是错误的!
2023-06-29 23:41 781 0 1

众所周知,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。

发表评论
更多评论
到底了