Datas E Os Computadores

Tempo de leitura: 5 min

Escrito por Celso Kitamura
em 12 de abril de 2022

Compartilhe agora mesmo:

Datas E Os Computadores
5/5 - (1 vote)

Algum fato importante na história aconteceu no dia que você nasceu? E dois meses depois, houve algum?

 

Nesse vídeo eu vou te mostrar que as datas, algo que aprendemos a lidar desde crianças, não são tão fáceis de se compreender.

 

Vamos conversar sobre datas e os computadores.

 

 

Datas E Os Computadores

 

Vamos marcar uma reunião daqui a duas semanas?

 

Você aí já deve ter o dia da reunião na sua cabeça, certo?

 

Uma coisa que para nós é trivial, é um pouco mais complicado para uma máquina entender.

 

As datas e os computadores são de certa forma… incompatíveis.

 

As linguagens de programação possuem um objeto nativo específico que deve ser utilizado quando formos trabalhar com datas em nossos softwares.

 

Precisamos tomar muito cuidado ao manipular informações de data e hora, principalmente por conta da diferença de fuso.

 

Mas antes de falar da relação entre datas e os computadores, vamos ver…

 

Um Pouco De História

 

Se você passou dos 30, com certeza deve ter ouvido falar do meridiano de Greenwich.

 

Em 1884 foi criado o Tempo Universal (UT), que foi a base para o sistema de fuso horário de 24 horas que conhecemos hoje.

 

Na época, o Greenwich Mean Time (GMT) foi escolhido como padrão de tempo do mundo.

 

A linha de referência ou ponto de partida, o Prime Meridian, foi determinado como sendo uma linha imaginária que atravessa o bairro londrino de Greenwich, onde fica o Observatório Real de Greenwich.

 

Greenwich foi escolhido porque o telescópio que fica no observatório auxiliou na definição de sua posição.

 

Em 1960 o conceito de UTC (Coordinated Universal Time) foi formalizado e foi colocado em prática no ano seguinte, aposentando o GMT.

 

Mas porquê?

 

O GMT é definido pela posição do sol ou das estrelas e foi substituído pelo UTC, pelo fato do UTC ser derivado do Tempo Atômico Internacional (TAI), muito mais preciso.

 

Até aí tudo bem, certo? O conceito de fuso horário é utilizado amplamente no nosso dia a dia.

 

Agora vamos ver como um computador lida com datas.

 

Era UNIX

 

A Era UNIX começou as 00:00 do dia 1 de janeiro de 1970 UTC.

 

O nome vem do fato desta data ser o marco zero do sistema de calendário usado pelo sistema operacional UNIX.

 

O horário Unix é o número de segundos passados desde o marco zero e é utilizado em sistemas operacionais do tipo Unix bem como em outros sistemas.

 

Como exemplo, o objeto Date do Javascript guarda o número de milissegundos passados a partir de 01 de janeiro de 1970.

 

Motivação

 

Apesar do calendário gregoriano facilitar o raciocínio cronológico para os humanos, para as máquinas é um pouco mais complicado.

 

Imagine duas datas: 25 de junho de 1975 e 26 de julho de 1974. Qual delas aconteceu primeiro?

 

Para nós humanos isso é quase automático. Agora imagina para uma máquina.

 

Todos os campos precisam ser analisados independentemente para se chegar a uma conclusão.

 

Apesar da velocidade de um processador atual, não deixa de ser um trabalho mais complexo do que verificar se um número é maior que o outro.

 

Outra situação é a do início da nossa conversa. Vamos marcar uma reunião daqui a duas semanas?

 

Para resolver problemas do tipo e para unificar um formato de data que a Marca Temporal Unix foi criada.

 

É simplesmente um contador que tem o valor zero em 01/01/1970 00:00:00UTC e é incrementado a cada segundo.

 

Assim as datas ficam fáceis de serem manipuladas por computadores, apesar de serem ilegíveis para nós.

 

Bug 2038

 

Você já ouviu falar do bug do milênio?

 

Esse foi um problema mundial que aconteceu por conta da relação das datas e os computadores.

 

Em resumo, antigamente os computadores utilizavam duas posições para tratar e armazenar o ano de uma data qualquer.

 

O grande bug era: o que aconteceria quando chegássemos no ano 2000?

 

As datas dos computadores passariam do ano 99 para o ano 00. Havia a possibilidade dos computadores se confundirem a acharem que estavam no ano de 1900, gerando grande confusão nos sistemas mais antigos da época.

 

Milhões de dólares foram gastos em atualização dos sistemas que podiam sofrer deste mal.

 

Podemos marcar outra conversa sobre esse capítulo da história dos computadores que causou comoção em todo o mundo. Mas já vou dar um spoiler aqui: nada de grave aconteceu e nenhum avião caiu.

 

Se quiser saber mais sobre o bug do milênio, comenta aí embaixo!

 

Bom, voltando ao bug 2038.

 

Pois bem, formatar as datas com a marca temporal Unix resolveu um monte de coisa, mas a forma com que ela foi implementada gerou um outro problema.

 

O tipo de dado utilizado para armazenar a data foi um inteiro de 32 bits do tipo signed.

 

A última data que pode ser representado por este formato é 03:14:07 de 19 de janeiro de 2038.

 

Depois disso a data será representada por um número decimal negativo que pode corresponder ao ano de 1970 ou 1901, gerando erros de cálculo e de funcionamento na maior parte dos programas em execução.

 

Palavras Finais

 

O objetivo deste bate papo foi mostrar um pouco sobre a relação entre datas e os computadores.

 

O assunto é bastante interessante, se você quiser que eu volte ao assunto, comenta aí embaixo.

 

Agora estamos prontos para vermos como trabalhar com datas e colocarmos a mão na massa, ou melhor, no código.

 

Meu e-book Como Aprender a Programar do Absoluto Zero está GRATUITO por tempo limitado!

Olha o link: 👉🏼 http://celsokitamura.com.br/como-aprender-a-programar

Bora aprender a programar!

 

Compartilhe agora mesmo:

Você vai gostar também:

Para enviar seu comentário, preencha os campos abaixo:

Deixe um comentário


*


*


Seja o primeiro a comentar!

Damos valor à sua privacidade

Nós e os nossos parceiros armazenamos ou acedemos a informações dos dispositivos, tais como cookies, e processamos dados pessoais, tais como identificadores exclusivos e informações padrão enviadas pelos dispositivos, para as finalidades descritas abaixo. Poderá clicar para consentir o processamento por nossa parte e pela parte dos nossos parceiros para tais finalidades. Em alternativa, poderá clicar para recusar o consentimento, ou aceder a informações mais pormenorizadas e alterar as suas preferências antes de dar consentimento. As suas preferências serão aplicadas apenas a este website.

Cookies estritamente necessários

Estes cookies são necessários para que o website funcione e não podem ser desligados nos nossos sistemas. Normalmente, eles só são configurados em resposta a ações levadas a cabo por si e que correspondem a uma solicitação de serviços, tais como definir as suas preferências de privacidade, iniciar sessão ou preencher formulários. Pode configurar o seu navegador para bloquear ou alertá-lo(a) sobre esses cookies, mas algumas partes do website não funcionarão. Estes cookies não armazenam qualquer informação pessoal identificável.

Cookies de desempenho

Estes cookies permitem-nos contar visitas e fontes de tráfego, para que possamos medir e melhorar o desempenho do nosso website. Eles ajudam-nos a saber quais são as páginas mais e menos populares e a ver como os visitantes se movimentam pelo website. Todas as informações recolhidas por estes cookies são agregadas e, por conseguinte, anónimas. Se não permitir estes cookies, não saberemos quando visitou o nosso site.

Cookies de funcionalidade

Estes cookies permitem que o site forneça uma funcionalidade e personalização melhoradas. Podem ser estabelecidos por nós ou por fornecedores externos cujos serviços adicionámos às nossas páginas. Se não permitir estes cookies algumas destas funcionalidades, ou mesmo todas, podem não atuar corretamente.

Cookies de publicidade

Estes cookies podem ser estabelecidos através do nosso site pelos nossos parceiros de publicidade. Podem ser usados por essas empresas para construir um perfil sobre os seus interesses e mostrar-lhe anúncios relevantes em outros websites. Eles não armazenam diretamente informações pessoais, mas são baseados na identificação exclusiva do seu navegador e dispositivo de internet. Se não permitir estes cookies, terá menos publicidade direcionada.

Visite as nossas páginas de Políticas de privacidade e Termos e condições.

Importante: Este site faz uso de cookies que podem conter informações de rastreamento sobre os visitantes.
Criado por WP RGPD Pro