Por que os intervalos de datas na computação começam em períodos antigos?

Por que os intervalos de datas na computação começam em períodos antigos?

Lendo oArtigo da Wikipédia sobre HFS+, notei que o intervalo de datas permitido é 1º de janeiro de 1904 – 6 de fevereiro de 2040. Da mesma forma, ointervalo para NTFSé 1º de janeiro de 1601 - 28 de maio de 60056. Na minha opinião, é ridículo pensar nisso, pois não consigo pensar em nenhum caso em que um arquivo precise ter uma data de modificação/criação definida em 1600 ou 1900. Eu posso entender a época do carimbo de data/hora do Unix, pois seria razoável ter um arquivo criado/modificado nos anos 70, 80, etc., mas parece ilógico ter a época desses carimbos de data/hora definida tão longe no passado.

Responder1

Não é apenas NTFS; A cronometragem interna do Windows é feita usando o mesmo formato de hora e com o mesmo início de época.

Eles sabiam que queriam um valor de tempo binário de 64 bits, porque o valor original de 32 bits do Unix já era conhecido por ser um beco sem saída (esses contadores serão encerrados em 2038) e valores de tempo de 64 bits já haviam sido usados ​​no VMS. 64 bits permitem calcular cerca de 18 bilhões de bilhões de valores de tempo diferentes. Bem, na verdade, apenas 9 bilhões de bilhões porque os valores de tempo com o bit alto definido têm um significado diferente no Windows (assim como no VMS). Portanto, realmente temos "apenas" 63 bits para contar a data e a hora do dia.

Enquanto o tempo Unix de 32 bits contava apenas segundos, os carimbos de data/hora do Windows contam em incrementos de 100 nanossegundos. Portanto, um valor de tempo de 1 significa 100 ns depois da meia-noite de 1º de janeiro de 1601.

Mas por que escolher uma data tão “histórica”?

Bem, em primeiro lugar, torna os cálculos do dia da semana e similares um pouco mais fáceis, já que esse foi o primeiro ano do primeiro ciclo de 400 anos que incluía computadores eletrônicos de qualquer tipo. Há algumapoio muito autoritáriopor essa razão.

No entanto, devo opinar que, no contexto da computação moderna, o poder computacional adicional necessário para lidar com um ano inicial diferente seria muito pequeno no contexto.

1º de janeiro de 1601 também é a data a partir da qual as datas ANSI são contadas. Portanto, a “data do Windows” é o mesmo número do dia que a “data ANSI”, o que torna as coisas um pouco mais fáceis em vários lugares.

Também foi padronizado como “ano 1” do calendário gregoriano (embora esse calendário não tenha sido adotado em todos os lugares naquela época).

Porém, por uma razão prática e de trabalho, considere: Este formato de data/hora permite que datas/horas históricas sejam representadas, por exemplo, em bancos de dados ao lado dos atuais, usando o mesmo formato. Uma base de dados genealógicos, por exemplo, pode assim armazenar as datas de nascimento e morte dos seus antepassados ​​que remontam a mais de 400 anos, o que é muito mais longo do que a maioria desses registos existe de forma fiável.

Não faria sentido estender isso antes, começando, digamos, no ano 1201 ou mesmo no ano 1, por causa da transição do calendário Juliano para o Gregoriano que começou em alguns países em 1582 e continuou até 1926, dependendo do país que você estavam dentro. Todas as datas registradas no formato de hora ANSI e, por extensão, no formato de hora "binário" do Windows são consideradas calendário gregoriano.

aliás, o VMS usa um esquema semelhante, mas seu horário base é 17 de novembro de 1858. Este foi um padrão escolhido pelo Observatório Astrofísico Smithsonian como uma "data base" para rastreamento de satélite; isso estava relacionado ao uso anterior pelos astrônomos do esquema original do Dia Juliano, que conta os dias desde o meio-dia, 1º de janeiro de 4713 aC. Neste esquema, 17 de novembro de 1858 chega ao número 2.400.000 do Dia Juliano Modificado. Ao usar o MJD em vez do JD, eles conseguiram encaixar datas contemporâneas em apenas 18 bits, o que foi um feito importante na época. VerEste artigoda VMS Engineering para obter detalhes.

Responder2

Quando examinada isoladamente, a ampla gama de carimbos de data/hora do NTFS pode parecer ilógica. Mas quando você olha para o quadro geral, é completamente lógico.

Uma das coisas que um sistema operacional faz é fornecer um conjunto de funções que a maioria dos programas necessita. Isso permite que os programadores se concentrem em seus programas, em vez de perder tempo reescrevendo essas funções comuns para cada programa. Qualquer sistema operacional que não forneça essas funções provavelmente não terá sucesso. Windows e Linux fornecem centenas dessas funções.

O Windows inclui uma série de funções para representar e trabalhar com datas e horas. Para obter a máxima utilidade, isto abrange um intervalo tão amplo de datas quanto for razoavelmente possível. Muitos programas usam essas funções para uma ampla variedade de finalidades.

O sistema de arquivos NTFS foi lançado como parte da plataforma NT. Como qualquer sistema de arquivos moderno, ele precisava de alguma forma de armazenar carimbos de data de arquivo. Logicamente os projetistas optaram por usar o mesmo sistema fornecido para as aplicações. Isso torna as coisas mais simples para os desenvolvedores. É claro que o intervalo de datas é muito maior do que o necessário para carimbos de data, mas não custa nada e não causa problemas. Usar um sistema diferente com um intervalo de datas mais restrito para carimbos de data teria sido ilógico.

Responder3

As datas (e sua especificação de formato em nível de bit) não são usadas apenas para rotular arquivos, mas também para cálculos e em muitos outros lugares. Um historiador pode querer ter datas do século XVII ou XVIII nas suas colunas do Excel, por exemplo; ou um astrônomo calcula alinhamentos planetários nesses períodos.

Mesmo que a quantidade de pessoas que o utilizam seja pequena, a perda é negligente - não importa muito se você pode usar esse formato por 100, 5.000 ou 60.000 anos; provavelmente não sobreviverá nos próximos 50 anos.

informação relacionada