Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Here is my code: public class CalendarAssignment { /** * Error to output if year

ID: 3937164 • Letter: H

Question

Here is my code:

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, s = 1; j > 0; ) {
           if (startDay >= 1 ) {
               for ( int i = 0; i < startDay; i++ ) {
                   System.out.print(" ");
                   nextLine++;
               }
               startDay = 0;
           } else {
               if ( s < 10 )
                   System.out.print( " " + s );
               if ( s >= 10 )
                   System.out.print( " " + s );
               nextLine++;
               j--;
               s++;
           }
           if (nextLine > 7) {
               System.out.println( "" );
               nextLine = 1;
       }
   }
       return nextLine-1;
   }
  
   /**
   * 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) {
   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): ");

       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);

       }

       int numFebDays;

       if (isLeapYear(year)) {

       numFebDays = 29;

       } else {

       numFebDays = 28;

       }

       int lastDayOfWeek;

       lastDayOfWeek = printMonth("January", firstDay, 31);
       System.out.println();

       lastDayOfWeek = printMonth("February", lastDayOfWeek, numFebDays);
       System.out.println();

       lastDayOfWeek = printMonth("March", lastDayOfWeek, 31);
       System.out.println();
       System.out.println();

       lastDayOfWeek = printMonth("April", lastDayOfWeek, 30);
       System.out.println();
       System.out.println();

       lastDayOfWeek = printMonth("May", lastDayOfWeek, 31);
       System.out.println();
       System.out.println();

       lastDayOfWeek = printMonth("June", lastDayOfWeek, 30);
       System.out.println();
       System.out.println();

       lastDayOfWeek = printMonth("July", lastDayOfWeek, 31);
       System.out.println();
       System.out.println();

       lastDayOfWeek = printMonth("August", lastDayOfWeek, 31);
       System.out.println();
       System.out.println();

       lastDayOfWeek = printMonth("September", lastDayOfWeek, 30);
       System.out.println();
       System.out.println();

       lastDayOfWeek = printMonth("October", lastDayOfWeek, 31);
       System.out.println();

       lastDayOfWeek = printMonth("November", lastDayOfWeek, 30);
       System.out.println();
       System.out.println();

       lastDayOfWeek = printMonth("December", lastDayOfWeek, 31);
       System.out.println();
       System.out.println();
}
}

Any help would be greatly appreciated. Thanks!!

Explanation / Answer

package org.students;

import java.util.Scanner;

import com.sun.org.apache.bcel.internal.generic.IUSHR;

public class Calander {
   //declaring static variables
   static final String E_YEAR = "The year must be positive!";
   static final String E_DAY = "The day of January 1st must be between 0 and 6!";

   public static void main(String[] args) {
      
       //Declaring variables
       int getFirstDay;
       int year;
       Scanner scanner = new Scanner(System.in);

       //This while loop continue to execute until user enters valid year
       while (true) {
          
           //Getting the year entered by the user
           System.out.print("Enter the year: ");

           year = scanner.nextInt();
           if (year < 0) {
               System.out.println(E_YEAR);
           } else
               break;
       }

       //This loop continue to execute until user enters valid first day of the month
       while (true) {

           //Getting the first day entered by the user
           System.out.print("Enter 1st day of year ( 0 = Sunday, 6 = Satuday ): ");

           getFirstDay = scanner.nextInt();
          
           //Checking whether the first day is within valid range or not
           if (getFirstDay < 0 || getFirstDay > 6) {
               System.out.println(E_DAY);
               continue;
           } else
               break;
       }

       for (int month = 1; month <= 12; month++) {

           int days = 0;

           String monthName = " ";

           switch (month) {

           case 1:
               monthName = "January";

               days = 31;

               break;

           case 2:
               monthName = "February";

               if (isLeapYear(year)) {

                   days = 29;

               } else {

                   days = 28;

               }

               break;

           case 3:
               monthName = "March";

               days = 31;

               break;

           case 4:
               monthName = "April";

               days = 30;

               break;

           case 5:
               monthName = "May";

               days = 31;

               break;

           case 6:
               monthName = "June";

               days = 30;

               break;

           case 7:
               monthName = "July";

               days = 31;

               break;

           case 8:
               monthName = "August";

               days = 31;

               break;

           case 9:
               monthName = "September";

               days = 30;

               break;

           case 10:
               monthName = "October";

               days = 31;

               break;

           case 11:
               monthName = "November";

               days = 30;

               break;

           case 12:
               monthName = "December";

               days = 31;

               break;

           default:
               System.out.print("Invalid Month.");
               System.exit(0);

               break;

           }

           System.out.println(" " + monthName + " " + year);

      

           int i = 0;

           int firstDay = 0;

           switch (month) {

           case 1:
               firstDay = getFirstDay;

               break;

           case 2:
               firstDay = getFirstDay + 3;

               break;

           case 3:
               firstDay = getFirstDay + 3;

               break;

           case 4:
               firstDay = getFirstDay + 6;

               break;

           case 5:
               firstDay = getFirstDay + 8;

               break;

           case 6:
               firstDay = getFirstDay + 11;

               break;

           case 7:
               firstDay = getFirstDay + 13;

               break;

           case 8:
               firstDay = getFirstDay + 16;

               break;

           case 9:
               firstDay = getFirstDay + 19;

               break;

           case 10:
               firstDay = getFirstDay + 21;

               break;

           case 11:
               firstDay = getFirstDay + 24;

               break;

           case 12:
               firstDay = getFirstDay + 26;

               break;

           }

           if (isLeapYear(year)) {

               switch (month) {

               case 1:
                   firstDay = getFirstDay;

                   break;

               case 2:
                   firstDay = getFirstDay + 3;

                   break;

               case 3:
                   firstDay = getFirstDay + 4;

                   break;

               case 4:
                   firstDay = getFirstDay + 7;

                   break;

               case 5:
                   firstDay = getFirstDay + 9;

                   break;

               case 6:
                   firstDay = getFirstDay + 12;

                   break;

               case 7:
                   firstDay = getFirstDay + 14;

                   break;

               case 8:
                   firstDay = getFirstDay + 17;

                   break;

               case 9:
                   firstDay = getFirstDay + 20;

                   break;

               case 10:
                   firstDay = getFirstDay + 22;

                   break;

               case 11:
                   firstDay = getFirstDay + 25;

                   break;

               case 12:
                   firstDay = getFirstDay + 27;

                   break;

               }

           }

           printMonth(month, firstDay, days);

           System.out.println();

       }

   }

   //This method checks whether the year is leap year or not
   private static boolean isLeapYear(int year) {
       boolean bool = false;
       if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
           bool = true;
       else
           bool = false;

       return bool;
   }

   //This method will display the month
   public static void printMonth(int month, int startDay, int numDays) {
       int dayOfWeek = 0;
       System.out.println("_______________________________");
       System.out.println(" Sun Mon Tue Wed Thu Fri Sat");
       if ((startDay % 7) >= 0) {

           if ((startDay % 7) == 0) {

               dayOfWeek = 0;

           } else if ((startDay % 7) == 1) {

               dayOfWeek = 1;

               System.out.print(" ");

           } else if ((startDay % 7) == 2) {

               dayOfWeek = 2;

               System.out.print(" ");

           } else if ((startDay % 7) == 3) {

               dayOfWeek = 3;

               System.out.print(" ");

           } else if ((startDay % 7) == 4) {

               dayOfWeek = 4;

               System.out.print(" ");

           } else if ((startDay % 7) == 5) {

               dayOfWeek = 5;

               System.out.print(" ");

           } else if ((startDay % 7) == 6) {

               dayOfWeek = 6;

               System.out.print(" ");

           }
       }
       for (int i = 1; i <= numDays; i++) {

           if (i < 10)

               System.out.print(" " + i);

           else

               System.out.print(" " + i);

           if ((i + startDay) % 7 == 0)

               System.out.println();

       }
      
   }
}

_________________________________

Output:

Enter the year: 2016
Enter 1st day of year ( 0 = Sunday, 6 = Satuday ): 5
January 2016
_______________________________
Sun Mon Tue Wed Thu Fri Sat
           1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
February 2016
_______________________________
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29
March 2016
_______________________________
Sun Mon Tue Wed Thu Fri Sat
   1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
April 2016
_______________________________
Sun Mon Tue Wed Thu Fri Sat
           1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

May 2016
_______________________________
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
June 2016
_______________________________
Sun Mon Tue Wed Thu Fri Sat
       1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
July 2016
_______________________________
Sun Mon Tue Wed Thu Fri Sat
           1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
August 2016
_______________________________
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
September 2016
_______________________________
Sun Mon Tue Wed Thu Fri Sat
           1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
October 2016
_______________________________
Sun Mon Tue Wed Thu Fri Sat
               1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
November 2016
_______________________________
Sun Mon Tue Wed Thu Fri Sat
   1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
December 2016
_______________________________
Sun Mon Tue Wed Thu Fri Sat
           1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

_________________Thank You

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote