Questão nº 38

Questão de Análise de Sistemas · CESGRANRIO BNDES 01/2024 (nº 38)

CESGRANRIO2024Analista - Análise de Sistemas (Desenvolvimento)Análise de Sistemas
Gabarito: Bver comentário ↓

Um desenvolvedor JavaScript está atualizando um código legado que utiliza a classe Date para manipulação de datas e horas. Ele precisa substituir o código antigo por uma implementação moderna utilizando a nova Temporal API, introduzida no ECMAScript 2023. O código original contém a seguinte linha para criar uma data correspondente a 15 de agosto de 2023:

`const minhaData = new Date(2023, 7, 15);`

Qual linha de código corresponde à criação dessa mesma data, usando a Temporal API?

Resposta comentada

Gabarito Alternativa B

Conceito-chave: A Temporal API separa data pura (sem fuso horário) de data-hora com fuso, e usa Temporal.PlainDate para representar apenas o calendário (ano, mês, dia). Diferente da Date antiga (que conta meses de 0 a 11), a Temporal conta meses de forma natural (1 a 12), então agosto = mês 8, não 7.

  • (A) Incorreta: Temporal.Date não existe na API final (o nome correto é Temporal.PlainDate) e ainda usa month: 7, que seria julho, não agosto.
  • (B) Correta: Temporal.PlainDate.from({ year: 2023, month: 8, day: 15 }) cria exatamente 15/08/2023, pois a Temporal usa meses de 1 a 12 (agosto = 8), eliminando a confusão do índice zero da Date antiga.
  • (C) Incorreta: A ordem dos argumentos no construtor new Temporal.PlainDate(ano, mês, dia) está errada (colocou dia, mês, ano) e ainda passou 8 como mês, mas a ordem correta seria (2023, 8, 15).
  • (D) Incorreta: Usa a classe antiga Date (não é a Temporal) e month: 8 na Date antiga corresponderia a setembro (pois lá janeiro é 0), criando 15/09/2023.
  • (E) Incorreta: Faltou o operador new (ou o método .from()), e a ordem dos argumentos está trocada — Temporal.PlainDate(2023, 7, 15) nem é uma chamada válida sem new, e mesmo com new, 7 seria julho.

Armadilha da banca (no distrator mais tentador, a letra A): A pegadinha está em Temporal.Date — parece lógico, mas a API real chama-se Temporal.PlainDate. Além disso, a banca repete o month: 7 do código original, tentando te fazer copiar o erro de indexação da Date antiga (onde 7 = agosto). Na Temporal, mês é natural: agosto é 8, não 7.

Fonte: CESGRANRIO BNDES 01/2024 Analista - Análise de Sistemas (Desenvolvimento) (Caderno Prova 3). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho