// The IncDate class // Do not make changes to anything other than the body of increment() method // Your name here public class IncDate extends Date { // copy constructor public IncDate(Date o) { super(o.m_month, o.m_day, o.m_year); } // constructor public IncDate(int month, int day, int year) { super(month, day, year); } public void addDays(int numDays) { // TODO: implement this method int days_to_add = numDays; int[] MONTHS = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; boolean is_leap = (m_year % 400 == 0) || ((m_year % 4 == 0) && !(m_year % 100 == 0)); for (int current_month = 0; current_month < m_month-1; current_month ++) days_to_add += MONTHS[current_month]; if ((m_month > 2) && is_leap) days_to_add += 1; days_to_add += m_day-1; m_month = 1; m_day = 1; while (days_to_add > 365) { is_leap = (m_year % 400 == 0) || ((m_year % 4 == 0) && !(m_year % 100 == 0)); if (is_leap) days_to_add -= 1; days_to_add -= 365; m_year += 1; } is_leap = (m_year % 400 == 0) || ((m_year % 4 == 0) && !(m_year % 100 == 0)); if (is_leap) MONTHS[1] +=1; while (days_to_add >= MONTHS[m_month-1]) { days_to_add -= MONTHS[m_month-1]; m_month += 1; } m_day=days_to_add+1; } }