Oii, Bruno! Tudo bem?
Peço desculpas pela demora no retorno a sua mensagem.
A classe GregorianCalendar
é uma implementação do calendário gregoriano no Java e ao utilizar o método isLeapYear(ano)
, ele retorna true
se o ano for bissexto e false
caso contrário. No exemplo mostrado por você, foi utilizado return new GregorianCalendar().isLeapYear(ano)
e passando o valor 100 para o parâmetro ano
, que retorna true
.
Dito isso, sobre a cada cem anos não é bissexto, no calendário gregoriano tem uma regra para determinar se um ano é bissexto ou não e, de acordo com essa regra, um ano é bissexto se for divisível por 4, a menos que seja divisível por 100. Porém, se for divisível por 400, ele é considerado bissexto novamente.
No seu segundo trecho de código, você está fazendo essa verificação manualmente. E, de fato, para o ano 100, ele não é bissexto, tendo como base a regra mencionada anteriormente. Portanto, o retorno false
está correto.
Aproveito para informar que essa formação ganhou uma atualização, caso tenha interesse de mergulhar no conteudo, segue o link:
Espero ter ajudado a entender melhor.
Bons estudos e sucesso!