Add to the Date1 class an increment method that increments the date. What should the signature of this method be? At a minimum have it add one to the day. At a maximum go the whole enchilada and have it correctly take the "wrap-around" to the next month if the current day is the last day of the month and increment the year if it's 31 Jan and deal with February and leap years. Add a section in the driver to test the increment method. Declare an array of user-specified size of Date1 elements: Date1 [] myDates = new Date1[size]; Fill it with random dates using this method (which is not a method of the Date1 class) to create random dates, and then display them. //generate a random Date1 public Date1 generateRandomDate() { int year, month, day=0; year = (int)(Math.random()*20)+1995; //between 1995 and 2014 month = (int)(Math.random()*12+1); switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: day = (int)(Math.random()*31+1); break; case 4: case 6: case 9: case 11: day = (int)(Math.random()*30+1); break; case 2: if (year%4==0 && year%100!=0 || year%400==0) //leap year test day = (int)(Math.random()*29+1); else day = (int)(Math.random()*28+1); break; } return new Date1(month,day,year); } Now change the method so that it takes two parameters which are the start and end years of the range that the random years should be between. Input the range from the user.