1. The APCalendar class contains methods used to calculate information about a calendar. You will write two methods of the class.

     public class APCalendar
     {
         /** Returns true if year is a leap year and false otherwise.*/ 
         private static boolean isLeapYear(int year)
             { /* implementation not shown */ }
    
         /** Returns the number of leap years between year1 and year2, inclusive. 
         * Precondition: 0 <= year1 <= year2 */
         public static int numberOfLeapYears(int year1, int year2)
             { /* to be implemented in part (a) */ }
    
         /** Returns the value representing the day of the week for the first day of year, * where 0 denotes Sunday, 1 denotes Monday, ..., and 6 denotes Saturday. */
         private static int firstDayOfYear(int year)
             { /* implementation not shown */ }
    
         /** Returns n, where month, day, and year specify the nth day of the year.
         * Returns 1 for January 1 (month = 1, day = 1) of any year.
         * Precondition: The date represented by month, day, year is a valid date. */
         private static int dayOfYear(int month, int day, int year)
             { /* implementation not shown */ }
    
         /** Returns the value representing the day of the week for the given date
         * (month, day, year), where 0 denotes Sunday, 1 denotes Monday, ..., and 6 denotes Saturday.
         * Precondition: The date represented by month, day, year is a valid date. */
         public static int dayOfWeek(int month, int day, int year)
             { /* to be implemented in part (b) */ }
    
         // There may be instance variables, constructors, and other methods not shown. 
     }

(a) Write the static method numberOfLeapYears, which returns the number of leap years between year1 and year2, inclusive. In order to calculate this value, a helper method is provided for you. • isLeapYear(year) returns true if year is a leap year and false otherwise. Complete method numberOfLeapYears below. You must use isLeapYear appropriately to receive full credit. /** Returns the number of leap years between year1 and year2, inclusive.

  • Precondition: 0 <= year1 <= year2 */

public static int numberOfLeapYears(int year1, int year2)

public static int numberOfLeapYears(int year1, int year2)
{
    int count=0;

    for (int i = year1; i <= year2; i++) 
    {
        if(isLeapYear(i))
        {
            count += 1;
        }
    }
    return count;
}

(b) Complete method dayOfWeek below. You must use firstDayOfYear and dayOfYear appropriately to receive full credit. /** Returns the value representing the day of the week for the given date

  • (month, day, year), where 0 denotes Sunday, 1 denotes Monday, ..., and 6 denotes Saturday.
  • Precondition: The date represented by month, day, year is a valid date. */

public static int dayOfWeek(int month, int day, int year)

public static int dayOfWeek(int month, int day, int year)
{
   int firstDay = firstDayOfYear(year);
   int NthDay = dayOfYear(month, day, year);
   int returnDay = (startDay + nthDay - 1) % 7;
   return returnDay;
}