monthApart
Category: Programming
Author: Marty Stepp
Book Chapter: 4.1
Problem: monthApart
Write a static method named monthApart that accepts four integer parameters month1, day1, month2, and day2, representing two calendar dates. Each date consists of a month (1 through 12) and a day (1 through the number of days in that month [28-31]). The method returns true if the dates are at least a month apart and false otherwise. Dates are defined to be exactly a month apart if their day values are the same and their months differ by 1. For example, January 20 and February 20 are exactly one month apart, and July 16 and August 16 are exactly one month apart. Note that it does not matter exactly how many days the given months have. For example, the following dates are all considered to be at least a month apart from 9/19 (September 19): 2/14, 7/25, 8/2, 8/19, 10/19, 10/20, and 11/5. The following dates are NOT at least a month apart from 9/19: 8/20, 9/1, 9/25, 10/1, 10/15, and 10/18. Note that the first date could come before or after, or be the same as, the second date. Assume that all parameter values passed are valid. Sample calls: monthApart( 6, 14, 9, 21) should return true, because June 14 is at least a month before September 21 monthApart( 4, 5, 5, 15) should return true, because April 5 is at least a month before May 15 monthApart( 4, 15, 5,15) should return true, because April 15 is at least a month before May 15 monthApart( 4, 16, 5, 15) should return false, because April 16 isn't at least a month apart from May 15 monthApart( 6, 14, 6, 8) should return false, because June 14 isn't at least a month apart from June 8 monthApart( 7, 7, 6, 8) should return false, because July 7 isn't at least a month apart from June 8 monthApart( 7, 8, 6, 8) should return true, because July 8 is at least a month after June 8 monthApart(10, 14, 7, 15) should return true, because October 14 is at least a month after July 15