Comando Linux cal não mostrando saída apropriada

5

Se você digitar cal 9 1752 em um terminal Linux, receberá uma saída estranha. Por exemplo:

[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

Você notou que a data de 3 a 13 está faltando? Porque isto é assim? Eu estou usando o CentOS 6.2.

    
por max 23.07.2012 / 10:29

2 respostas

15

Não é um problema, essas datas foram omitidas em setembro de 1752.

Britain and the British Empire (including the eastern part of what is now the United States) adopted the Gregorian calendar in 1752, by which time it was necessary to correct by 11 days. Wednesday, 2 September 1752 was followed by Thursday, 14 September 1752.

Referência: link

    
por 23.07.2012 / 10:38
0

O cara que originalmente escreveu o comando "cal" em alguma versão antiga 7 máquina teve um erro off-one em seu código. Isso apareceu como alguns saída errônea quando uma variável malloc sobrescreveu 12 bytes extras com zeros, levando assim à estranha saída do calendário vista acima.

Agora, ninguém em sã consciência realmente se importa com o calendário para Setembro de 1752. Mesmo a idéia do ano de 1752 não existe sob UNIX, porque o tempo não começou para UNIX até o início de 1970. Como resultado, ninguém sabia que "cal" tinha esse erro até muito mais tarde. Até então havia milhares de cópias de "cal" por aí, muitas delas somente binário. Era tarde demais para consertar todos eles.

Assim, em meados de 1975, algumas autoridades de alto nível da AT & T se reuniram com o Papa, e chegou a um acordo. O calendário foi modificado retroativamente para trazer Setembro de 1752, de acordo com a realidade do UNIX. Desde que o calendário foi alterado contando para trás a partir de 14 de setembro de 1752, nenhuma das datas após que foram afetados. As datas anteriores foram movidas por 12 dias. Eles também corrigiram a página man para "cal" para documentar o bug como um recurso.

Os 11 dias de 3 de setembro a 13 de setembro simplesmente desapareceram do registros. Eles pesquisaram os livros de história e descobriram que, felizmente, nada de muita significância aconteceu durante esses 11 dias.

No geral, todo esse incidente foi praticamente um não evento. Uma ciência autor de ficção mais tarde ouviu sobre isso, e explodiu a coisa em um trabalho completo de ficção científica chamado "The Lathe of Heaven", um livro que na minha opinião tem pouca semelhança com o que realmente aconteceu.

fonte original

    
por 23.07.2012 / 14:05