Apakah `cal` rusak? Apa yang terjadi pada bulan September 1752?

28

Jika Anda melihat output cal 9 1752Anda akan melihat output aneh ini:

   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

Kisah berikut berjudul " cal 9 1752 menjelaskan" "disalin dari sebuah daftar berita di awal 90-an dan diarsipkan di bawah Koleksi hal-hal lucu untuk audiens komputer oleh David G. Wiseman (Manajer Jaringan di Departemen Ilmu Komputer di Universitas) dari Ontario Barat).

Lelaki yang awalnya menulis perintah "cal" pada beberapa mesin Versi 7 yang lama mengalami kesalahan off-by-one dalam kodenya. Ini muncul sebagai beberapa output yang salah ketika variabel malloc akan menimpa 12 byte tambahan dengan nol, sehingga mengarah ke output kalender aneh yang terlihat di atas.

Sekarang, tidak ada orang waras yang benar-benar peduli tentang kalender untuk bulan September 1752. Bahkan gagasan tahun 1752 tidak ada di bawah UNIX, karena waktu tidak dimulai untuk UNIX sampai awal 1970. Akibatnya, tidak ada yang tahu bahwa "kal "Ada kesalahan ini sampai nanti. Pada saat itu ada ribuan salinan "cal" yang beredar, banyak di antaranya hanya biner. Sudah terlambat untuk memperbaiki semuanya.

Jadi pada pertengahan 1975, beberapa pejabat AT&T tingkat tinggi bertemu dengan Paus, dan mencapai kesepakatan. Kalender itu diubah surut untuk membawa September 1752 sesuai dengan realitas UNIX. Karena kalender diubah dengan menghitung mundur dari 14 September 1752, tidak ada tanggal setelah itu yang terpengaruh. Tanggal-tanggal sebelumnya semuanya dipindahkan 12 hari. Mereka juga memperbaiki halaman manual untuk "cal" untuk mendokumentasikan bug sebagai fitur.

11 hari dari 3 September hingga 13 September hilang begitu saja dari catatan. Mereka mencari di buku-buku sejarah dan menemukan bahwa untungnya tidak ada hal penting yang terjadi selama 11 hari itu.

Secara keseluruhan, seluruh insiden ini bukan kejadian. Seorang penulis fiksi ilmiah kemudian mendengarnya, dan meledakkannya menjadi karya fiksi ilmiah yang disebut "The Lathe of Heaven", sebuah buku yang menurut saya sedikit mirip dengan apa yang sebenarnya terjadi.

Apa penjelasan nyata untuk anomali output?

LanceBaynes
sumber
14
Apakah Anda tidak melihat /humordirektori di URL yang Anda posting? ;)
alex
1
Tautan itu membuat saya tertawa.
jw013
1
... apa yang salah dengan output lagi? : p
d33tah
Kalender Gregorian yang subur tampaknya lebih masuk akal jika tidak, Anda harus mengetahui negara, agama, dll. Untuk menentukan kalender dengan akurat.
jfs
1
Bahkan gagasan tahun 1752 tidak ada di bawah UNIX ... ... tetapi apakah gagasan UNIX ada di 1752?
Alois Mahdal

Jawaban:

49

Untuk melacak kisah nyata, coba jalankan man calsendiri:

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.

Kemudian, jika riwayat Anda samar, lanjutkan dengan Wikipedia untuk informasi tentang perubahan yang diperkenalkan oleh Kalender Gregorian dan riwayat adopsi di berbagai belahan dunia:

Reformasi kalender Gregorian memuat dua bagian, reformasi kalender Julian yang digunakan hingga masa Paus Gregorius, bersama dengan reformasi siklus bulan yang digunakan oleh Gereja bersama dengan kalender Julian untuk menghitung tanggal Paskah.
[...]
Selain perubahan panjang rata-rata tahun kalender dari 365,25 hari (365 hari 6 jam) menjadi 365,2425 hari (365 hari 5 jam 49 menit 12 detik), pengurangan 10 menit 48 detik per tahun , reformasi kalender Gregorian juga membahas perbedaan akumulasi masa lalu antara panjang ini.
[...]
Namun, karena Reformasi Protestan, banyak negara Eropa Barat pada awalnya tidak mengikuti reformasi Gregorian, dan mempertahankan sistem gaya lama mereka. Akhirnya negara-negara lain mengikuti reformasi demi konsistensi, tetapi pada saat penganut terakhir kalender Julian di Eropa Timur (Rusia dan Yunani) berubah menjadi sistem Gregorian pada abad ke-20, mereka harus turun 13 hari dari kalender mereka , karena akumulasi perbedaan tambahan antara kedua kalender sejak 1582 .
[...]
Inggris dan Kerajaan Inggris (termasuk bagian timur dari apa yang sekarang disebut Amerika Serikat) mengadopsi kalender Gregorian pada 1752, yang pada saat itu perlu dikoreksi dalam 11 hari. Rabu, 2 September 1752 diikuti oleh Kamis, 14 September 1752.

Pada saat Unix datang dan mengatur ulang jam dunia untuk mulai pada tanggal 1 Januari 1970, tidak ada yang bisa dilakukan tentang seluruh kekacauan kecuali memilih tanggal untuk menunjukkan reset diaktifkan. Karena dunia mengadopsi sistem kalender Gregorian saat ini pada waktu yang berbeda di berbagai negara, waktu yang tepat untuk melakukan koreksi ini agak sewenang-wenang.

Jika Anda pernah memiliki alasan untuk menghitung tanggal kembali sejauh itu dalam perangkat lunak Anda, Anda akan mengalami masalah yang jauh lebih signifikan daripada hanya satu kali reset! Sejarah kalender penuh kejutan!

Caleb
sumber
3
Jawaban bagus! Untuk membuat segalanya menjadi lebih kompleks, masyarakat biara Yunani tertentu masih menggunakan kalender Julian hari ini.
terdon
1
"waktu yang tepat untuk melakukan koreksi ini agak arbitrer" - Itu terlalu disederhanakan. Versi yang lebih tepat adalah "setidaknya dibutuhkan lokasi pengguna untuk mengenali tanggal di mana koreksi terjadi." (Orang Swedia, misalnya, memiliki rencana ambisius untuk mengolesi reformasi kalender selama 40 tahun: en.wikipedia.org/wiki/Swedish_calendar )
Piskvor
4

Berikut ini adalah makalah yang bagus tentang kalender (PDF) yang menjelaskan bagaimana lambatnya pergeseran Paskah sepanjang tahun membuat koreksi tanggal ini diperlukan dan juga menjelaskan kapan berbagai negara melakukan pergantian.

Di halaman 904:

Dia [Paus Greogory] juga mengoreksi akumulasi kesalahan 10 hari dalam kalender dengan menyatakan bahwa Kamis, 4 Oktober 1582 M, tanggal terakhir dalam gaya lama (kalender Julian), akan diikuti oleh hari Jumat, 15 Oktober, 1582 M, hari pertama kalender gaya baru (Gregorian). Negara-negara Katolik mengikuti aturan ini, tetapi negara-negara Protestan menentang: Spanyol, Portugal, dan Italia segera mengadopsinya, seperti halnya negara-negara Katolik di Jerman. Bagian-bagian Protestan Jerman menunggu hingga 1700 untuk mengadopsinya. Inggris Raya dan koloninya (termasuk Amerika Serikat ) menunggu hingga 1752 , Rusia bertahan sampai setelah revolusi pada 1918, dan Bulgaria hingga 1920.

Makalah ini terus merujuk pada daftar luas tanggal adopsi yang disusun oleh para astronom dan menjelaskan secara langsung bagaimana mengkonversi antara sistem kalender yang berbeda.

whoplisp
sumber