Czy „cal” jest zepsute? Co się stało we wrześniu 1752 roku?

28

Jeśli spojrzysz na wynik cal 9 1752, zobaczysz ten dziwny wynik:

   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

Poniższa historia zatytułowana „ cal 9 1752 wyjaśnił” została skopiowana z listy newsów na początku lat 90. i zarchiwizowana pod zbiorami śmiesznych rzeczy dla publiczności komputerowej przez Davida G. Wisemana (menedżera sieci na Wydziale Informatyki Uniwersytetu) zachodniego Ontario).

Facet, który pierwotnie napisał polecenie „cal” na jakiejś starej maszynie w wersji 7, miał w swoim kodzie błąd „jeden po drugim”. Okazało się to, że niektóre błędne dane wyjściowe, gdy zmienna malloc'd nadpisała 12 dodatkowych bajtów zerami, prowadząc w ten sposób do dziwnego wyniku kalendarza widocznego powyżej.

Teraz nikt przy zdrowych zmysłach tak naprawdę nie dba o kalendarz na wrzesień 1752. Nawet idea roku 1752 nie istnieje w systemie UNIX, ponieważ czas zaczął się w systemie UNIX dopiero na początku 1970 roku. W rezultacie nikt nawet nie wiedział, że „cal „miał ten błąd dużo później. Do tego czasu krążyły tysiące kopii „cal”, wiele z nich tylko w wersji binarnej. Było za późno, aby je wszystkie naprawić.

W połowie 1975 r. Niektórzy urzędnicy AT&T wysokiego szczebla spotkali się z papieżem i doszli do porozumienia. Kalendarz został retroaktywnie zmieniony, aby dostosować wrzesień 1752 do rzeczywistości UNIX. Ponieważ kalendarz został zmieniony poprzez odliczanie wstecz od 14 września 1752 r., Nie miało to wpływu na żadną późniejszą datę. Wszystkie poprzednie daty zostały przesunięte o 12 dni. Naprawiono także stronę podręcznika dla „cal”, aby udokumentować błąd jako funkcję.

11 dni od 3 września do 13 września po prostu zniknęły z akt. Przeszukali książki historyczne i stwierdzili, że na szczęście nic ważnego nie wydarzyło się w ciągu tych 11 dni.

Ogólnie rzecz biorąc, ten cały incydent był w zasadzie nie wydarzeniem. Pewien autor science fiction dowiedział się później o tym i wysadził tę sprawę w pełnometrażowe dzieło science fiction zatytułowane „The Tokhe of Heaven”, książkę, która moim zdaniem w niewielkim stopniu przypomina to, co się naprawdę wydarzyło.

Jakie jest prawdziwe wyjaśnienie anomalii wyjściowej?

LanceBaynes
źródło
14
Nie widzisz /humorkatalogu w opublikowanym adresie URL? ;)
alex
1
Ten link mnie rozśmieszył.
jw013,
1
... co jest nie tak z wyjściem? : p
d33tah
Praktyczny kalendarz gregoriański wydaje się bardziej rozsądny, w przeciwnym razie musisz znać kraj, religię itp., Aby ustalić kalendarz z pewną dokładnością.
jfs
1
Nawet idea roku 1752 nie istnieje w systemie UNIX ... ... ale czy idea systemu UNIX istniała w 1752 roku?
Alois Mahdal

Odpowiedzi:

49

Aby prześledzić prawdziwą historię, spróbuj uruchomić man calsię:

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.

Następnie, jeśli twoja historia jest szkicowa, przejdź do Wikipedii, aby uzyskać informacje o zmianach wprowadzonych przez Kalendarz gregoriański i jego historię adopcji w różnych częściach świata:

Gregoriańska reforma kalendarza składała się z dwóch części, reformy kalendarza juliańskiego stosowanej do czasów papieża Grzegorza, wraz z reformą cyklu księżycowego stosowanego przez Kościół wraz z kalendarzem juliańskim do obliczania dat Wielkanocy.
[...]
Oprócz zmiany średniej długości roku kalendarzowego z 365.25 dni (365 dni 6 godzin) na 365.2425 dni (365 dni 5 godzin 49 minut 12 sekund), zmniejszenie o 10 minut 48 sekund rocznie , reforma kalendarza gregoriańskiego dotyczyła również nagromadzonej w przeszłości różnicy między tymi długościami.
[...]
Jednak z powodu reformacji protestanckiej wiele krajów Europy Zachodniej początkowo nie przystąpiło do reformy gregoriańskiej i utrzymało swój stary system. Ostatecznie inne kraje przystąpiły do ​​reformy w celu zachowania spójności, ale zanim ostatni wyznawcy kalendarza juliańskiego w Europie Wschodniej (Rosja i Grecja) zmienili system gregoriański w XX wieku, musieli zrezygnować z kalendarzy o 13 dni , ze względu na dodatkową skumulowaną różnicę między dwoma kalendarzami od 1582 r .
[...]
Wielka Brytania i Imperium Brytyjskie (w tym wschodnia część dzisiejszych Stanów Zjednoczonych) przyjęły kalendarz gregoriański w 1752 r., Kiedy to trzeba było skorygować o 11 dni. W środę 2 września 1752 r. Nastąpił czwartek, 14 września 1752 r.

Zanim pojawił się Unix i zresetował zegary światowe, aby zacząć od 1 stycznia 1970 r., Nie było nic do zrobienia w całym tym bałaganie, oprócz wybrania daty, w której ma być resetowany. Ponieważ świat przyjął obecny system kalendarza gregoriańskiego w różnym czasie w różnych krajach, dokładny czas na dokonanie tej korekty jest nieco arbitralny.

Jeśli kiedykolwiek będziesz miał powód, by liczyć daty sięgające tak daleko w swoim oprogramowaniu, napotkasz o wiele poważniejsze problemy niż tylko jeden reset! Historia kalendarza jest pełna niespodzianek!

Caleb
źródło
3
Świetna odpowiedź! Aby jeszcze bardziej skomplikować sytuację, niektóre greckie społeczeństwa monastyczne nadal korzystają z kalendarza juliańskiego.
terdon
1
„dokładny czas na dokonanie tej korekty jest nieco arbitralny” - to bardzo uproszczone. Bardziej precyzyjna wersja brzmiałaby „zajęłoby przynajmniej lokalizację użytkownika, aby rozpoznać datę (daty), w której nastąpiła korekta”. (na przykład Szwedzi mieli ambitny plan rozmazania reformy kalendarza przez 40 lat: en.wikipedia.org/wiki/Swedish_calendar )
Piskvor
4

Oto dobry artykuł na temat kalendarzy (PDF), który wyjaśnia, jak powolne przesunięcie Wielkanocy w ciągu roku spowodowało konieczność korekty daty, a także opisuje, kiedy różne kraje dokonały zmiany.

Na stronie 904:

[Papież Greogory] również poprawił skumulowany 10-dniowy błąd w kalendarzu, ogłaszając, że w czwartek, 4 października 1582 r., Ostatnia data w starym stylu (kalendarz juliański), nastąpi piątek, 15 października 1582 r. pierwszy dzień nowego kalendarza (gregoriańskiego). Kraje katolickie przestrzegały tej zasady, ale kraje protestanckie oparły się: Hiszpania, Portugalia i Włochy natychmiast ją przyjęły, podobnie jak państwa katolickie w Niemczech. Protestanckie części Niemiec czekały do ​​1700 r. Na jego przyjęcie. Wielka Brytania i jej kolonie (w tym Stany Zjednoczone ) czekały do 1752 r. , Rosja utrzymywała się aż do rewolucji w 1918 r., A Bułgaria do 1920 r.

Artykuł nadal zawiera obszerną listę dat adopcji, która została opracowana przez astronomów i wyjaśnia w prosty sposób, jak konwertować różne systemy kalendarza.

whoplisp
źródło