Percursos
/
Java
Java
/
Exercícios
/
Ano bissexto
Ano bissexto

Ano bissexto

Fácil

Introdução

Um ano bissexto (no calendário gregoriano) ocorre:

  • Em todos os anos divisíveis por 4.
  • Exceto quando o ano é divisível por 100; nesse caso, só é bissexto se também for divisível por 400.

Alguns exemplos:

  • 1997 não foi um ano bissexto, porque não é divisível por 4.
  • 1900 não foi um ano bissexto, porque não é divisível por 400.
  • 2000 foi um ano bissexto!
Note

Para uma explicação encantadora de quatro minutos sobre todo o fenómeno dos anos bissextos, vê este vídeo do YouTube.

Instruções

A tua tarefa é determinar se um dado ano é bissexto.

Implementação

Antes de começares, certifica-te de que percebes como escrever código capaz de passar nos casos de teste. Para mais contexto, consulta este tutorial.

A maioria dos exercícios de Java inclui vários casos de teste. Estes casos estão estruturados para apoiar um processo útil conhecido como desenvolvimento orientado por testes (TDD). O TDD envolve repetir um ciclo estruturado que ajuda os programadores a construir funcionalidades complexas peça a peça, em vez de as construírem todas de uma vez. Esse ciclo pode ser descrito da seguinte forma:

  1. Acrescenta um teste que descreva uma parte da funcionalidade pretendida que o teu código ainda não tem.
  2. Corre os testes para verificar que este teste recém-acrescentado falha.
  3. Atualiza o teu código existente até que:
    • Todos os testes antigos continuem a passar;
    • O novo teste também passe.
  4. Limpa o teu código, certificando-te de que todos os testes continuam a passar. Normalmente, isto implica renomear variáveis, remover blocos de lógica duplicados, remover registos deixados para trás, etc.
  5. Volta ao passo 1 até toda a funcionalidade pretendida estar construída!

Os ficheiros de teste deste percurso contêm todos os testes que a tua solução tem de passar para ser considerada válida. À primeira vista, isso não parece ser compatível com o ciclo descrito acima, em que os testes são escritos um a um. No entanto, a ferramenta que usamos para escrever os nossos testes, o JUnit, disponibiliza uma anotação @Disabled que pode ser usada para ignorar temporariamente um teste já escrito. Com esta anotação, garantimos que os ficheiros de teste que te entregamos cumprem as seguintes regras:

  • O primeiro teste de qualquer ficheiro de teste não é ignorado por predefinição.
  • Todos os testes de um ficheiro de teste, exceto o primeiro, são ignorados por predefinição.

Isto permite-te simular o ciclo do TDD seguindo estes passos ligeiramente modificados:

  1. Corre os testes para verificar que, neste momento, falha no máximo um teste.
  2. Atualiza o teu código existente até todos os testes não ignorados passarem.
  3. Limpa o teu código, certificando-te de que todos os testes não ignorados continuam a passar.
  4. Remove a anotação @Disabled que está mais acima no ficheiro de teste.
  5. Volta ao passo 1 até não haver testes ignorados e todos os testes passarem!
Editar via GitHub A ligação abre numa nova janela ou separador
Java Exercism

Estás pronto para começar Ano bissexto?

Inscreve-te no Exercism para aprenderes e dominares Java com 26 conceitos158 exercícios, e mentoria humana real, tudo grátis.

Mergulha a fundo em Ano bissexto!

Mergulha a fundo nos diferentes algoritmos e abordagens que podes usar para resolver o Ano bissexto, enquanto o Jeremy e o Erik exploram soluções da comunidade interessantes em 10 linguagens diferentes no Exercism.