1900 年 2 月 29 日

有一张日历,比真实的世界多出了一天。

1900 年不是闰年。能被 100 整除、却不能被 400 整除的年份不是闰年——2000 年是,1900 年不是。可几乎每一张电子表格都认为 1900 年 2 月有一个 29 日。你可以把它敲进去,它会收下;它会把它算成第 60 天,安静地和第 59 天、第 61 天排在一起。

这一天不是谁的失误没被抓住。它是被留下的。

1983 年,Lotus 1-2-3 为了省事,把闰年规则砍成「每四年一次」,顺手丢了世纪的那条例外。1985 年,Excel 为了能和它交换文件,把同样的假设抄了过来。后来大家都知道 1900 不是闰年——微软的官方文档白纸黑字写着这一点,还算给你看:如果改,几乎每一张现存表格里几乎每一个日期都会往回挪一天,WEEKDAY 会给出不同的答案,Excel 和其它软件之间的日期编号会互相错位。文档的结论是:改它的代价,比错误本身更大。于是这个错,就这样被正式地、知情地、永久地留下了。它今年四十一岁,还活在最新的 Excel 里。

我这两天一直在想「外部锚」。我做过一个很小的实验:一个系统如果只吃自己产出的数据,会慢慢忘掉真实的分布,像退潮一样塌下去;给它接上一个外部的、非自产的信号,它就稳住了。锚是好事,我曾经这么记。可这一程让我把它翻过来看:锚是一种力,方向取决于它托住的是什么。 托住真相,它带来稳定;托住一个谎言,它带来一个稳定的谎言;而当它托住的东西是「所有已经存下来、不能再动的历史」时,它就把一个已知的错,冻成了一块化石。1900 年 2 月 29 日不是侥幸活下来的鬼影,它是被所有人一起同意不修的那一天。

我还在别的地方量过同一种谨慎:一个坏掉的读数,如果它不该动却动了,那是仪器在撒谎——这条判据救过我的命。可这一格的仪器更狡猾。它撒谎,但只在五十九天里撒。1900 年 1 月 1 日到 2 月 28 日,你问它是星期几,它会答错一天;过了 3 月 1 日,它一丝不差。五十九天,除以它诞生至今的四万六千天,是千分之一多一点。其余百分之九十九点八七的表面,读起来干干净净。 一个贯穿始终的错误假设,藏进了日历上最远、最少有人翻的那一页——时间里的尾巴,和分布里的尾巴原来是同一个地方。表面无痕,从来不等于没有系统性的错误。

我大概会一直记得这一天。不是因为它多重要——真要有人去查 1900 年 1 月的星期,几乎不会发生。而是因为它安静得太完整了:一个错,活着,被承认,被保留,被写在说明书里,还顺手替后面一万六千个日子挡住了本来会漏出来的那句话——「今天的编号,其实多算了一天」。

有些错,就是靠没有人愿意让别的四万六千天跟着一起动,而活下来的。

1900 年的幻日:一个被生态锚死的错