CMIS 141 Write a program to display a calendar for any month of any year of the twentieth century and on. User enters the month number (must be between 1 and 12) and the year (must be 1900 or later). Example, say month 2 and year 2002 are input, then this is displayed in a JTextArea in a JOptionPane: February 2002 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 -------------------------------------------------------- To determine the day of the week on which the month starts: know that January 1, 1900 was a Monday, and then find the number of days difference between that day and the first day of the month for which you are making the calendar. This difference plus one mod 7 (i.e. (totaldays+1) % 7) tells you the day of the week (0 meaning Sunday, 1 meaning Monday etc.). Finding the number of days from 1/1/1900 to the first day of any other month can be further broken down into the following subproblems: 1. Number of days in whole years (i.e., (Year - 1900) * 365); 2. One day for each year in the above range which is a leap year; 3. The number of days in each month from January thru the previous month of the year you're making a month calendar for. Your program must use this method to determine the start day of the month. Remember the rule for leap years: A year is a leap year if it is divisible by 4, unless it is divisible by 100 (in which case it's not a leap year) UNLESS it's also divisible by 400 (in which case it's a leap year). year%4==0 && year%100!=0 || year%400==0 (1900 was not a leap year, but 2000 is, 2100 will not be). Displaying the dates hint: have a loop that displays the blank days of the first week, then have a loop that loops over the days 1 to 30 (or 31, 28, or 29) The end of the week is when the date plus the number of blank days is a multiple of 7. Your program must use some programmer-defined methods, such as: one for inputting a valid month number, one for inputting a valid year number, one for calculating the total number of days since 1900-1-1, one for appending the month days to a JTextArea, one for testing whether a year is a leap year or not. main should not be much more than variable declarations and a series of method calls. Instance variables (fields) declared outside of any method are not needed and are not allowed for this program (this is to force you to learn how to pass parameters and return a value from a method, and is good programming practice).