‘cal’ 壞了嗎?1752 年 9 月發生了什麼?
如果你看一下你的輸出,
cal 9 1752
你會看到這個奇怪的輸出:September 1752 S M Tu W Th F S 1 2 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
以下標題為“ cal 9 1752 Explained”的故事是 90 年代初從新聞列表中複製出來的,並由 David G. Wiseman(大學電腦科學系的網路經理)存檔在為電腦觀眾收集有趣的東西下西安大略)。
最初在某些舊版本 7 機器上編寫“cal”命令的人在他的程式碼中有一個錯誤。當 malloc 的變數用零覆蓋 12 個額外字節時,這顯示為一些錯誤輸出,從而導致上面看到的奇怪的日曆輸出。
現在,沒有人真正關心 1752 年 9 月的日曆。甚至 1752 年的想法在 UNIX 下也不存在,因為 UNIX 的時間直到 1970 年初才開始。結果,甚至沒有人知道“cal “直到很久以後才出現這個錯誤。到那時,已經有成千上萬的“cal”副本四處飄蕩,其中許多都是二進制的。修復它們為時已晚。
所以在 1975 年年中,AT&T 的一些高層官員會見了教皇,並達成協議。日曆被追溯更改以使 1752 年 9 月與 UNIX 現實保持一致。由於日曆從 1752 年 9 月 14 日開始倒數*,*因此之後的日期都沒有受到影響。之前的日期都被移動了 12 天。他們還修復了“cal”的手冊頁,以將錯誤記錄為功能。
從 9 月 3 日到 9 月 13 日這 11 天,簡直就從記錄中消失了。他們翻閱了史書,幸好這11天裡並沒有發生什麼大事。
總的來說,這整個事件幾乎是無關緊要的。一位科幻作家後來聽說了這件事,並將這件事炸成一部完整的科幻作品,名為《天堂的車床》,在我看來,這本書與真實發生的事情幾乎沒有相似之處。
輸出異常的真正解釋是什麼?
要追踪真實的故事,請嘗試執行
man cal
自己:The Gregorian Reformation is assumed to have occurred in 1752 on the 3rd of September. By this time, most countries had recognized the reforma- tion (although a few did not recognize it until the early 1900’s.) Ten days following that date were eliminated by the reformation, so the cal- endar for that month is a bit unusual.
然後,如果您的歷史是粗略的,請繼續使用 Wikipedia 了解有關公曆引入的更改及其在世界各地採用的歷史的資訊:
格里高利歷改革包括兩部分,一是在教皇格里高利時代使用的儒略歷改革,二是改革教會使用的陰曆週期以及計算復活節日期的儒略歷。
$$ … $$
公曆年平均長度由 365.25 天(365 天 6 小時)改為 365.2425 天(365 天 5 小時 49 分 12 秒),每年減少 10 分 48 秒,公曆改革還處理了這些長度之間過去累積的差異。
$$ … $$
然而,由於新教改革,許多西歐國家最初並沒有效仿格里高利的改革,而是保留了舊式的製度。最終其他國家為了一致性而效仿,但當東歐(俄羅斯和希臘)的最後一個儒略歷追隨者****在 20 世紀改用公曆時,他們不得不從日曆中刪除 13 天, 由於自 1582 年以來兩個日曆之間的額外累積差異。
$$ … $$
英國和大英帝國(包括現在的美國東部)在 1752 年採用了公曆,到那時必須將其修正 11 天。1752 年 9 月 2 日星期三,隨後是 1752 年 9 月 14 日星期四。
當 Unix 出現並將世界時鐘重置為 1970 年 1 月 1 日開始時,除了選擇一個顯示重置的日期外,沒有什麼可以解決整個混亂的。由於世界在不同國家的不同時間採用了目前的公曆系統,因此進行此更正的確切時間有些武斷。
如果您有理由在軟體中計算可以追溯到那麼遠的日期,那麼您將遇到比重置更重要的問題!日曆的歷史充滿了驚喜!