Il comando Linux cal non mostra l'output corretto


5

Se scrivi cal 9 1752 in un terminale Linux otterrai strani output. Per esempio:

[max@avi ~]$ cal 9 1752

   September 1752  

Su Mo Tu We Th Fr Sa

       1  2 14 15 16

17 18 19 20 21 22 23

24 25 26 27 28 29 30

Hai notato che manca la data dal 3 al 13? Perché è così? Sto usando CentOS 6.2.


Fatto divertente: man cal spiega che ... ci siamo imbattuti in questo mentre lo ho integrato nel mio script conky. O almeno alcune pagine man ...
Bobby

Risposte:


15

Non è un problema, queste date furono saltate nel settembre del 1752.

Gran Bretagna e l'impero britannico (compresa la parte orientale di ciò che è   ora gli Stati Uniti) adottarono il calendario gregoriano nel 1752, di   che ora è stato necessario correggere entro 11 giorni. Mercoledì 2   Il settembre 1752 fu seguito da giovedì 14 settembre 1752.

Riferimento: http://en.wikipedia.org/wiki/Gregorian_calendar


0

Il tizio che in origine ha scritto il comando "cal" su qualche vecchia versione 7 la macchina aveva un errore "fuori-per-uno" nel suo codice. Questo si presentò come alcuni output errato quando una variabile malloc'd ha sovrascritto 12 byte extra con zeri, portando così allo strano output del calendario visto sopra.

Ora, nessuno nella sua mente giusta si preoccupa davvero del calendario per Settembre 1752. Anche il idea dell'anno 1752 non esiste sotto UNIX, perché il tempo non è iniziato per UNIX fino all'inizio del 1970. Di conseguenza, nessuno sapeva nemmeno che "cal" avesse questo errore fino a molto tempo dopo. Da allora c'erano migliaia di copie di "cal" che galleggiavano, molte di esse solo binario. Era troppo tardi per sistemarli tutti.

Così, a metà del 1975, alcuni funzionari di alto livello di AT & T si incontrarono con il Papa, e è arrivato ad un accordo. Il calendario è stato modificato in modo retroattivo per portarlo Settembre 1752 in linea con la realtà UNIX. Poiché il calendario è stato modificato contando indietro dal 14 settembre 1752, nessuna delle date successive che sono stati colpiti Le date precedenti sono state spostate di 12 giorni. Hanno anche corretto la pagina man per "cal" per documentare il bug come una caratteristica.

Gli 11 giorni dal 3 settembre al 13 settembre sono stati semplicemente abbandonati dal record. Hanno perquisito i libri di storia e l'hanno trovato per fortuna nulla di molto importante è accaduto durante questi 11 giorni.

Nel complesso, l'intero incidente è stato praticamente un non-evento. Una scienza l'autore di narrativa in seguito ne ha sentito parlare e ha fatto saltare in aria la cosa un lavoro a tutto tondo di fantascienza chiamato "Il tornio del cielo", un libro questo a mio parere ha poca somiglianza con ciò che è realmente accaduto.

fonte originale


6
Il modo in cui questa risposta è scritta nasconde il fatto che si tratta di una copia e incolla da a umorismo posto.
Ward
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.