Cal está quebrado? O que aconteceu em setembro de 1752?

28

Se você olhar para a saída cal 9 1752, verá esta saída estranha:

   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

A seguinte história intitulada " cal 9 1752 explicou" "foi copiada de uma lista de notícias no início dos anos 90 e arquivada em Coleções de coisas engraçadas para o público de computadores por David G. Wiseman (gerente de rede do Departamento de Ciência da Computação da Universidade Ontário Ocidental).

O cara que originalmente escreveu o comando "cal" em uma máquina antiga da Versão 7 teve um erro de um por um em seu código. Isso apareceu como uma saída incorreta quando uma variável de malloc substituiu 12 bytes extras por zeros, levando à estranha saída do calendário vista acima.

Agora, ninguém no seu perfeito juízo realmente se importa com o calendário de setembro de 1752. Mesmo a idéia do ano de 1752 não existe no UNIX, porque o tempo não começou para o UNIX até o início de 1970. Como resultado, ninguém sabia que "cal "teve esse erro até muito mais tarde. Até então, havia milhares de cópias de "cal" flutuando, muitas delas apenas binárias. 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 chegaram a um acordo. O calendário foi alterado retroativamente para alinhar setembro de 1752 com a realidade do UNIX. Como o calendário foi alterado, contando de 14 de setembro de 1752 para trás , nenhuma das datas posteriores foi afetada. As datas anteriores foram todas movidas por 12 dias. Eles também corrigiram a página de manual do "cal" para documentar o bug como um recurso.

Os 11 dias de 3 a 13 de setembro simplesmente desapareceram dos registros. Eles pesquisaram os livros de história e descobriram que, felizmente, nada de muito significado aconteceu durante esses 11 dias.

No geral, todo esse incidente foi praticamente um não-evento. Um autor de ficção científica mais tarde ouviu falar sobre isso e transformou a coisa em um trabalho completo de ficção científica chamado "O Torno do Céu", um livro que, na minha opinião, tem pouca semelhança com o que realmente aconteceu.

Qual é a explicação real para a anomalia de saída?

LanceBaynes
fonte
14
Você não vê o /humordiretório no URL que postou? ;) #
22411 alex
1
Esse link me deu uma boa risada.
Jw013
1
... o que há de errado com a saída novamente? : p
d33tah
Um calendário gregoriano pró-séptico parece mais razoável, caso contrário, você precisa conhecer o país, a religião etc. para determinar o calendário com alguma precisão.
JFS
1
Até a ideia do ano de 1752 não existe no UNIX ... ... mas a ideia do UNIX existe em 1752?
Alois Mahdal

Respostas:

49

Para rastrear a história real, tente executar man calvocê mesmo:

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.

Então, se seu histórico é incompleto, continue com a Wikipedia para obter informações sobre as alterações introduzidas pelo Calendário Gregoriano e seu histórico de adoção em várias partes do mundo:

A reforma do calendário gregoriano continha duas partes, uma reforma do calendário juliano usada até a época do papa Gregório, juntamente com uma reforma do ciclo lunar usado pela Igreja junto com o calendário juliano para o cálculo das datas da Páscoa.
[...]
Além da mudança na duração média do ano civil de 365,25 dias (365 dias 6 horas) para 365,2425 dias (365 dias 5 horas 49 minutos 12 segundos), uma redução de 10 minutos 48 segundos por ano , a reforma do calendário gregoriano também tratou da diferença acumulada no passado entre esses comprimentos.
[...]
Por causa da Reforma Protestante, no entanto, muitos países da Europa Ocidental não seguiram inicialmente a reforma gregoriana e mantiveram seus sistemas antigos. Eventualmente, outros países seguiram a reforma por uma questão de consistência, mas quando os últimos adeptos do calendário juliano na Europa Oriental (Rússia e Grécia) mudaram para o sistema gregoriano no século 20, eles tiveram que abandonar 13 dias de seus calendários , devido à diferença adicional acumulada entre os dois calendários desde 1582 .
[...]
A Grã-Bretanha e o Império Britânico (incluindo a parte oriental do que hoje são os Estados Unidos) adotaram o calendário gregoriano em 1752, quando era necessário corrigir 11 dias. Quarta-feira, 2 de setembro de 1752, foi seguida pela quinta-feira, 14 de setembro de 1752.

Quando o Unix apareceu e redefiniu os relógios do mundo para começar em 1º de janeiro de 1970, não havia nada a ser feito sobre toda a bagunça, exceto escolher uma data para mostrar a redefinição. Como o mundo adotou o atual sistema de calendário gregoriano em momentos variados em diferentes países, o tempo exato para fazer essa correção é um tanto arbitrário.

Se você tiver um motivo para contar datas tão antigas no seu software, terá problemas muito mais significativos do que apenas uma redefinição! A história do calendário é cheia de surpresas!

Caleb
fonte
3
Ótima resposta! Para tornar as coisas ainda mais complexas, certas sociedades monásticas gregas ainda hoje usam o calendário juliano.
terdon
1
"o tempo exato para fazer essa correção é um tanto arbitrário" - isso é simplificado demais. Uma versão mais precisa seria "seria necessário pelo menos a localização do usuário para reconhecer a (s) data (s) em que a correção ocorreu". (sueco, por exemplo, teve um ambicioso plano para manchar a reforma do calendário em 40 anos: en.wikipedia.org/wiki/Swedish_calendar )
Piskvor
4

Aqui está um bom artigo sobre calendários (PDF), que explica como a lenta mudança da Páscoa ao longo do ano tornou necessária essa correção de datas e também descreve quando diferentes países fizeram a troca.

Na página 904:

Ele [Papa Greogory] também corrigiu o erro acumulado de 10 dias no calendário, proclamando que quinta-feira, 4 de outubro de 1582 dC, a última data no estilo antigo (calendário juliano), seria seguida pela sexta-feira, 15 de outubro de 1582 dC, o primeiro dia do novo calendário de estilo (gregoriano). Os países católicos seguiram essa regra, mas os países protestantes resistiram: Espanha, Portugal e Itália a adotaram imediatamente, assim como os estados católicos na Alemanha. As partes protestantes da Alemanha esperaram até 1700 para adotá-lo. A Grã-Bretanha e suas colônias (incluindo os Estados Unidos ) esperaram até 1752 , a Rússia aguentou até depois da revolução em 1918 e a Bulgária até 1920.

O documento continua a fazer referência a uma extensa lista de datas de adoção, que foi compilada por astrônomos e explica de maneira direta como converter entre diferentes sistemas de calendário.

whoplisp
fonte