Los años bisiestos son aquellos que duran 366 días en vez de los 365 normales. El día de más que tiene el año es el 29 de febrero. Esto sucede para corregir el desfase real de la duración de un año, que es de 365 días y 6 horas.
Para saber si un año es bisiesto se puede aplicar una simple formula, la cual dice que un año es bisiesto si es divisible por cuatro, excepto los principios de año (los divisibles por 100), que para ser bisiestos deben de ser divisibles también por 400.
Si tenemos que resolver esto con un lenguaje de programación como Java solo nos harían falta unas pequeñas líneas de código para llevar a cabo la definición anterior. Sería algo así como:
if ((anio % 4 == 0) && ((anio % 100 != 0) || (anio % 400 == 0)))
System.out.println("El año es bisiesto");
else
System.out.println("El año no es bisiesto");
Pero Java nos ofrece una forma todavía más sencilla de resolver si un año es bisiesto. Y es que nos proporciona la clase GregorianCalendar y en concreto el método .isLeapYear(anio). Este método devolverá true o false, según corresponda.
De esta manera el código sería el siguiente:
GregorianCalendar calendar = new GregorianCalendar();
if (calendar.isLeapYear(anio))
System.out.println("El año es bisiesto");
else
System.out.println("El año no es bisiesto");