HELP JAVA ASSIGNMENT So here is my programming assignment Wr

HELP JAVA ASSIGNMENT!

So here is my programming assignment: \"Write a program in Java to generate the entire calendar for one year. The program must get two values from the user: : (1) the year and (2) the day of the week for January 1st of that year. \"
I have everything in my code working except the numbers on the calendar don\'t line up like they should, so my JUnit test is wrong. Here\'s a picture: It is supposed to look like the left side. I somehow have extra spaces.

When i click on the JUnit test. It gives me the following (sorry some of the numbers got cut off):

This is my code ( The day of the week for January 1st is needed so that you know where to start the calendar. The user should enter 0 for Sunday, 1 for Monday, … or 6 for Saturday. To actually print the calendar, a SINGLE method that prints out the calendar for one month must be used and then called 12 times from main(), once for each month in the year. To check for a leap year we will need to write another method that takes the year as a parameter and returns true if it’s a leap year, or false otherwise.)

:

public class CalendarAssignment {
   /**
   * Error to output if year is not positive
   */
   static final String E_YEAR = \"The year must be positive!\";

   /**
   * Error to output if the day is not between 0 and 6
   */
   static final String E_DAY = \"The day of January 1st must be between 0 and 6!\";

   /**
   * Determines if an input is a leap year
   *
   * @param year
   * year in question
   * @ereturn true if a leap year
   */
   public static boolean isLeapYear(int year) {
   boolean leapyear = false;
   if(year%4 == 0) {
   if(year%100 == 0){
   if(year%400 == 0){
   return !leapyear;
   };
   }else{
   return !leapyear;
   }
   }
   return leapyear; // TODO: replace with your code
   }

   /**
   * Outputs a month to the console
   *
   * @param month
   * title
   * @param startDay
   * 0=Sunday ... 6=Saturday
   * @param numDays
   * number of days in the month
   * @return day of the week of the last day of the month
   */
   public static int printMonth(String month, int startDay, int numDays) {
   System.out.println(month);
   int nextLine=1;
   for(int j=numDays,k=1;j>0;){
   if(startDay>0){
   for(int i=0;i    System.out.printf(\"\\t\");
   nextLine++;
   }
   startDay=0;
   }else{
   System.out.printf(k + \"\\t\");
   nextLine++;
   k++;
   j--;
   }
   if((nextLine >7)){System.out.println(); nextLine=1;}
   }
   return (nextLine-1);
   // TODO: replace with your code
   }

   /**
   * Program execution point: input year, day of the week (0-6) of january 1
   * output calendar for that year
   *
   * @param args
   * command-line arguments (ignored)
   */
   public static void main(String[] args) {

   String[] months = {\"January\", \"February\", \"March\", \"April\", \"May\",
   \"June\", \"July\", \"August\", \"September\", \"October\", \"November\",
   \"December\" };
   int[] total_Days_In_Months = {31,28,31,30,31,30,31,31,30,31,30,31};
   Scanner input = new Scanner(System.in);
   System.out.print(\"Enter the year: \");
   int year = input.nextInt();
   System.out.print(\"Enter the day of the week of January 1st (0=Sunday, 1=Monday, ... 6=Saturday): \");
   if(year <= 0) {
       System.out.print(E_YEAR);
       System.out.println();
       System.exit(0);
   }
   int day_of_week = input.nextInt();
   if(day_of_week <0 || day_of_week >6)
       {
       System.out.print(E_DAY);
       System.out.println();
       System.exit(0);
       }
   if(isLeapYear(year)){
   total_Days_In_Months[1] = 29;
   }
   for(int j=0;j    int endDay = day_of_week;
   day_of_week = printMonth(months[j], endDay, total_Days_In_Months[j]);
   System.out.println();
   }
   }
}

Expected Actual 1 Enter the year: Enter the day of the week of January 1st (e Sunday, 1-Monday, 1 Enter the year: Enter the day of the week of January 1st (e Sunday, 1-Monday 2 2 1 2 3 3 4 5 6 7 8 9 10 34 5 6 7 8 9 10 4 11 12 13 14 15 16 17 411 12 13 14 15 16 17 5 18 19 20 21 22 23 24 518 19 20 21 22 23 24 6 25 26 27 28 29 30 31 625 26 27 28 29 30 31 7 7 8 February 8 February 91 2 3 45 6 7 108 9 10 11 12 13 14 1115 16 17 18 19 20 21 1222 23 24 25 26 27 28 13 14March 151 2 3 4 5 6 7 168 9 1e 11 12 13 14 1715 16 17 18 19 20 21 1822 23 24 25 26 27 28 19 29 3 31 20 April 21 225 6 7 8 9 10 11 2312 13 14 15 16 17 18 2419 20 21 22 23 24 25 2526 27 28 29 30 26 Ma 27 283 4 5 6 7 8 9 29 1e 11 12 13 14 15 16 3917 18 19 20 21 22 23 3124 25 26 27 28 29 30 32 31 33 June 34 9 1 2 3 4 5 6 7 10 8 9 10 11 12 13 14 11 15 16 17 18 19 20 21 12 22 23 24 25 26 27 28 13 14March 15 1 2 3 4 5 67 16 8 9 10 11 12 13 14 17 15 16 17 18 19 20 21 18 22 23 24 25 26 27 28 19 29 3e 31 20 21 April 1 2 3 4 1 2 3 4 23 56 7 8 9 10 11 24 12 13 14 15 16 17 18 25 19 20 21 22 23 24 25 26 26 27 28 29 30 27 28 Ma 29 30 3 4 5 6 7 8 9 31 10 11 12 13 14 15 16 32 17 18 19 20 21 22 23 33 24 25 26 27 28 29 30 34 31 1 2 1 2 3 45 6 OK

Solution

/**

* Determines if an input is a leap year

*

* @param year year in question

* @return true if a leap year

*/

public static boolean isLeapYear(int year) {

return false;

}

/**

* Outputs a month to the console

*

* @param month title

* @param startDay 0=Sunday ... 6=Saturday

* @param numDays number of days in the month

* @return day of the week of the last day of the month

*/

public static int printMonth(String month, int startDay, int numDays){

System.out.println(month);

int dayOfWeek = 10;

//Your code goes here

System.out.println(\"Print: \" + month);

System.out.println(\"\");

return dayOfWeek;

}

/**

* Program execution point:

* input year, day of the week (0-6) of january 1

* output calendar for that year

*

* @param args command-line arguments (ignored)

*/

public static void main(String[] args) {

@SuppressWarnings(\"resource\")

final Scanner input = new Scanner(System.in);

System.out.print(\"Enter the year: \");

final int year = input.nextInt();

System.out.print(\"Enter the day of the week of January 1st (0=Sunday, 1=Monday, ... 6=Saturday): \");

final int firstDay = input.nextInt();

if (year<=0) {

System.out.println(\"The year must be positive!\");

System.exit(0);

}

if (firstDay<0 || firstDay>6) {

System.out.println(\"The day of January 1st must be between 0 and 6!\");

System.exit(0);

}

final int numFebDays;

if (isLeapYear(year)) {

numFebDays = 29;

} else {

numFebDays = 28;

}

int lastDayOfWeek;

lastDayOfWeek = printMonth(\"January\", firstDay, 31);

lastDayOfWeek = printMonth(\"February\", lastDayOfWeek, numFebDays);

lastDayOfWeek = printMonth(\"March\", lastDayOfWeek, 31);

lastDayOfWeek = printMonth(\"April\", lastDayOfWeek, 30);

lastDayOfWeek = printMonth(\"May\", lastDayOfWeek, 31);

lastDayOfWeek = printMonth(\"June\", lastDayOfWeek, 30);

lastDayOfWeek = printMonth(\"July\", lastDayOfWeek, 31);

lastDayOfWeek = printMonth(\"August\", lastDayOfWeek, 31);

lastDayOfWeek = printMonth(\"September\", lastDayOfWeek, 30);

lastDayOfWeek = printMonth(\"October\", lastDayOfWeek, 31);

lastDayOfWeek = printMonth(\"November\", lastDayOfWeek, 30);

lastDayOfWeek = printMonth(\"December\", lastDayOfWeek, 31);

}

HELP JAVA ASSIGNMENT! So here is my programming assignment: \
HELP JAVA ASSIGNMENT! So here is my programming assignment: \
HELP JAVA ASSIGNMENT! So here is my programming assignment: \
HELP JAVA ASSIGNMENT! So here is my programming assignment: \
HELP JAVA ASSIGNMENT! So here is my programming assignment: \

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site