Código Java para calcular o ano bissexto

Estou seguindo o livro "A Arte e a Ciência de Java" e mostra como calcular um ano bissexto. O livro usa a biblioteca do ACM Java Task Force.

Aqui está o código que os livros usam:

<code>import acm.program.*;

public class LeapYear extends ConsoleProgram {
    public void run()
    {

        println("This program calculates leap year.");
        int year = readInt("Enter the year: ");     

        boolean isLeapYear = ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0));

        if (isLeapYear)
        {
            println(year + " is a leap year.");
        } else
            println(year + " is not a leap year.");
    }

}
</code>

Agora, foi assim que calculei o ano bissexto.

<code>import acm.program.*;

public class LeapYear extends ConsoleProgram {
    public void run()
    {

        println("This program calculates leap year.");
        int year = readInt("Enter the year: ");

        if ((year % 4 == 0) && year % 100 != 0)
        {
            println(year + " is a leap year.");
        }
        else if ((year % 4 == 0) && (year % 100 == 0) && (year % 400 == 0))
        {
            println(year + " is a leap year.");
        }
        else
        {
            println(year + " is not a leap year.");
        }
    }
}
</code>

Há algo de errado com o meu código ou devo usar o código fornecido pelo livro?

EDIT :: Ambos os códigos acima funcionam bem, o que eu quero perguntar é qual código é a melhor maneira de calcular o ano bissexto.

questionAnswers(21)

yourAnswerToTheQuestion