Back to the Program-A-Day homepage
Problem
Write a short program that takes a year as input from the user, and then determines whether or not that particular year is (or was) a leap year.
As a reminder, here is the criteria that dictates whether or not a year is a leap year: If the year is evenly divisible by 4, then the year is a leap year -- unless it is also divisible by 100, in which case it is not. An exception to this is if the year is divisible by 400, then it is still a leap year.
Examples:
1996 was a leap year because it was divisible by 4.
1900 was not a leap year in spite of being divisible by 4, because it is also divisible by 100.
2000 was a leap year because it is divisible by 400.
2009 was not a leap year, because it is not divisible by 4.
|
|
SideSectionTitle
Taken from http://www.flickr.com/photos/daniello/565304023/
An image or By Students section
|
Solution
The solution...
|
Code
Solution Code
import javax.swing.*;
public class leapyear
{
public static void main( String[] args )
{
String input;
int year;
boolean done = false;
while( !done )
{
input = JOptionPane.showInputDialog( "Enter a year:" );
if ( input != null)
{
year = Integer.parseInt( input );
//first, check if it's a leap year. For it to be a leap year,
//it needs to either be divisible by 4 and NOT by 100, or be divisible by 400
if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )
{
JOptionPane.showMessageDialog( null, year + " is a leap year! :)",
"Leap Year!", JOptionPane.INFORMATION_MESSAGE );
}
else //it is not a leap year
{
JOptionPane.showMessageDialog( null, year + " is not a leap year. :(",
"No Leap Year", JOptionPane.INFORMATION_MESSAGE );
}
}
else
done = true;
}
}
}
}
|
Back to the Program-A-Day homepage