Chegamos ao ponto em que já entendemos:
- por que o
Dateé problemático - como a Temporal API resolve a lógica de datas
- como a API Intl cuida da exibição
Agora vamos amarrar tudo isso em um conjunto de boas práticas modernas.
🎯 Objetivo da aula
Ao final desta aula, você será capaz de:
- Evitar bugs clássicos com datas
- Separar lógica de exibição
- Escolher o tipo correto de data
- Escrever código previsível e confiável
1️⃣ Separe lógica de exibição
Essa é a regra mais importante:
❌ Errado:
if (dataFormatada === "21/01/2026") { // lógica } ✅ Correto:
const data = Temporal.PlainDate.from("2026-01-21");
if (data.equals(Temporal.PlainDate.from("2026-01-21"))) {
// lógica
}
2️⃣ Use o tipo certo para cada problema
Não existe “uma data universal”.
Temporal.Instant→ tempo absoluto (logs, banco)Temporal.PlainDate→ datas sem horaTemporal.PlainTime→ horários isoladosTemporal.ZonedDateTime→ eventos reais com fuso
3️⃣ Armazene datas de forma neutra
Em bancos de dados e APIs:
- use UTC
- use ISO 8601
- evite datas locais
const agora = Temporal.Now.instant();
console.log(agora.toString());
// Saída será algo como: 2026-01-21T17:00:00Z
4️⃣ Sempre seja explícito com fusos
Se o fuso importa, ele deve aparecer no código.
const evento = Temporal.ZonedDateTime.from( "2026-01-21T14:00[America/Sao_Paulo]" ); 5️⃣ Nunca confie em strings ambíguas
❌ Evite:
new Date("01/02/2026"); // ambíguo ✅ Prefira:
Temporal.PlainDate.from("2026-02-01"); 6️⃣ Cálculos devem ser semânticos
Evite trabalhar com milissegundos.
const inicio = Temporal.PlainDate.from("2026-01-01");
const fim = Temporal.PlainDate.from("2026-01-21");
const diff = fim.since(inicio);
console.log(diff.days); // Saída será: 20
O código expressa claramente a intenção.
7️⃣ Use Intl apenas para exibição
Depois de resolver a lógica com Temporal:
const formatador = new Intl.DateTimeFormat("pt-BR", { dateStyle: "long" });
console.log(formatador.format(new Date()));
// Saída será algo como: 21 de janeiro de 2026
8️⃣ Centralize regras de datas
Evite espalhar lógica de datas pelo código.
Crie funções ou módulos específicos:
function criarEvento(dataISO, fuso)
{
return Temporal.ZonedDateTime.from( `${dataISO}[${fuso}]` );
} 9️⃣ Teste datas em fusos diferentes
Sempre que possível:
- teste em fusos diferentes
- simule usuários internacionais
- desconfie de “funciona na minha máquina”
Resumo das boas práticas
- separe lógica e exibição
- seja explícito com fusos
- use tipos corretos
- prefira Temporal ao Date
- use Intl apenas para mostrar
Resumo da aula para nunca mais esquecer
- Datas são complexas por natureza
- Boas práticas evitam bugs silenciosos
- Temporal resolve lógica
- Intl resolve exibição
- Código claro vence atalhos
Com isso, encerramos o bloco moderno de datas e horários.
Estamos prontos para seguir para o próximo grande capítulo do curso 🚀
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
PDP-1
O primeiro computador a conseguir rodar o jogo Spacewar era o PDP-1, que custava 120 mil dólares e pertencia ao Massachusetts Institute of Technology. O jogo demorou 200 horas para ser desenvolvido, em 1962, e seu criador foi um cientista da computação chamado Steve Russel.
Tetris
Desde o seu lançamento, em 1985, o fantástico jogo Tetris vende pelo menos 70 milhões de unidades por ano em todo o mundo! Os dados são oficiais e fornecidos pela THQ, uma das distribuidoras do título.
Cuidados com o notebook
Utilizar seu notebook em camas, sofás ou qualquer superfície macia pode obstruir as entradas e saídas de ar, elevando a temperatura e provocando danos a diversos componentes. Utilize-o sempre sobre uma superfície rígida. Saiba mais aqui.
Mario em Donkey Kong
O personagem Mario surgiu pela primeira vez no mundo dos games em um jogo chamado Donkey Kong, lançado em 1981. Mario, que naquela época se chamava Jumpman, não era o personagem principal do jogo, mas ele se tornaria um dos mais famosos personagens do mundo dos games. Saiba mais.
Duck Hunt
Ao completar o nível 99 do jogo Duck Hunt, para Nintendo, o jogo retorna ao primeiro nível, mas um bug impede que se acerte os patos neste recomeço. Este é um exemplo do que é chamado no mundo dos games de "Kill Screen".










