Question

In: Computer Science

I can't get the number of days to print. Here is my code: public static void...

I can't get the number of days to print. Here is my code:

public static void main(String[] args) { // Prompt the user to enter year Scanner scanner = new Scanner(System.in); // Prompt the user to enter year System.out.print("Enter full year (e.g., 2016): "); int year = scanner.nextInt(); for(int i = 1; i <= 12; i++) printMonth(year, i); } /** Print the calendar for a month in a year */ static void printMonth(int year, int month) { // Print the headings of the calendar printMonthTitle(year, month); // Print the body of the calendar printMonthBody(year, month); } /** Print the month title, e.g., May, 1999 */ static void printMonthTitle(int year, int month) { System.out.println(" " + getMonthName(month) + " " + year); System.out.println("-----------------------------"); System.out.println(" Sun Mon Tue Wed Thu Fri Sat"); } /** Get the English name for the month */ static String getMonthName(int month) { String monthName = null; switch (month) { case 1: monthName = "January"; break; case 2: monthName = "February"; break; case 3: monthName = "March"; break; case 4: monthName = "April"; break; case 5: monthName = "May"; break; case 6: monthName = "June"; break; case 7: monthName = "July"; break; case 8: monthName = "August"; break; case 9: monthName = "September"; break; case 10: monthName = "October"; break; case 11: monthName = "November"; break; case 12: monthName = "December"; } return monthName; } /** Print month body */ static void printMonthBody(int year, int month) { // Get start day of the week for the first date in the month int startDay = getStartDay(year, month); // Get number of days in the month int numberOfDaysInMonth = getNumberOfDaysInMonth(year, month); // Pad space before the first day of the month int i = 0; for (i = 0; i < startDay; i++) System.out.print(" "); for (i = 1; i <= numberOfDaysInMonth; i++) { if (i < 10) System.out.print(" " + i); else System.out.print(" " + i); if ((i + startDay) % 7 == 0) System.out.println(); } System.out.println(); } /** Get the start day of the first day in a month */ static int getStartDay(int year, int month) { // Get total number of days since 1/1/1800 int startDay1800 = 3; int totalNumberOfDays = getTotalNumberOfDays(year, month); // Return the start day return (totalNumberOfDays + startDay1800) % 7; } /** Get the total number of days since January 1, 1800 */ static int getTotalNumberOfDays(int year, int month) { int total = 0; // Get the total days from 1800 to year - 1 for (int i = 1800; i < year; i++) if (isLeapYear(i)) total = total + 366; else total = total + 365; // Add days from Jan to the month prior to the calendar month for (int i = 1; i < month; i++) total = total + getNumberOfDaysInMonth(year, i); return total; } /** Get the number of days in a month */ static int getNumberOfDaysInMonth(int year, int month) { if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) return 31; else if (month == 4 || month == 6 || month == 9 || month == 11) return 30; else if (month == 2) return isLeapYear(year) ? 29 : 28; return 0; // If month is incorrect } /** Determine if it is a leap year */ static boolean isLeapYear(int year) { return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0); }

Solutions

Expert Solution

//Java program

import java.util.Scanner;

public class Calendar {
   /** Print the calendar for a month in a year */
   static void printMonth(int year, int month) {
       // Print the headings of the calendar
       printMonthTitle(year, month);
       // Print the body of the calendar
       printMonthBody(year, month);
   }
   /** Print the month title, e.g., May, 1999 */
   static void printMonthTitle(int year, int month)
   { System.out.println(" " + getMonthName(month) + " " + year);
   System.out.println("-----------------------------");
   System.out.println(" Sun Mon Tue Wed Thu Fri Sat");
   }
  
   /** Get the English name for the month */
   static String getMonthName(int month) {
       String monthName = null;
       switch (month) {
       case 1:
           monthName = "January";
           break;
       case 2:
           monthName = "February";
           break;
       case 3:
           monthName = "March";
           break;
       case 4:
           monthName = "April";
           break;
       case 5:
           monthName = "May";
           break;
       case 6:
           monthName = "June";
           break;
       case 7:
           monthName = "July";
           break;
       case 8:
           monthName = "August";
           break;
       case 9:
           monthName = "September";
           break;
       case 10:
           monthName = "October";
           break;
       case 11:
           monthName = "November";
           break;
       case 12:
           monthName = "December";
       }
       return monthName;
       }
   /** Print month body */
   static void printMonthBody(int year, int month)
   { // Get start day of the week for the first date in the month
       int startDay = getStartDay(year, month);
       // Get number of days in the month
       int numberOfDaysInMonth = getNumberOfDaysInMonth(year, month);
       // Pad space before the first day of the month
       int i = 0;
       for (i = 0; i < startDay; i++)
           System.out.print(" ");
       for (i = 1; i <= numberOfDaysInMonth; i++)
       { if (i < 10) System.out.print(" " + i);
           else System.out.print(" " + i);
       if ((i + startDay) % 7 == 0)
           System.out.println();
       }
       System.out.println();
   }
   static int getStartDay(int year, int month)
   { // Get total number of days since 1/1/1800
       int startDay1800 = 3;
       int totalNumberOfDays = getTotalNumberOfDays(year, month);
       // Return the start day
       return (totalNumberOfDays + startDay1800) % 7;
   }
   /** Get the total number of days since January 1, 1800 */
   static int getTotalNumberOfDays(int year, int month)
   { int total = 0;
   // Get the total days from 1800 to year - 1
   for (int i = 1800; i < year; i++)
       if (isLeapYear(i))
           total = total + 366;
       else total = total + 365;
   // Add days from Jan to the month prior to the calendar month
   for (int i = 1; i < month; i++)
       total = total + getNumberOfDaysInMonth(year, i);
   return total;
   }
  
   /** Get the number of days in a month */
   static int getNumberOfDaysInMonth(int year, int month)
   { if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
           return 31;
       else if (month == 4 || month == 6 || month == 9 || month == 11)
           return 30;
       else if (month == 2) return isLeapYear(year) ? 29 : 28;
   return 0; // If month is incorrect
   }
   /** Determine if it is a leap year */
   static boolean isLeapYear(int year)
   { return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0); }
  
   public static void main(String[] args) {
       // Prompt the user to enter year
       Scanner scanner = new Scanner(System.in);
       // Prompt the user to enter year
       System.out.print("Enter full year (e.g., 2016): ");
       int year = scanner.nextInt();
       for(int i = 1; i <= 12; i++)
           printMonth(year, i);
      
       int month;
       System.out.print("\n\nEnter full year (e.g., 2016): ");
           year = scanner.nextInt();
           System.out.print("Enter month : ");
           month = scanner.nextInt();
          
           System.out.print("Number of days : "+ getTotalNumberOfDays(year,month));
  
   }
  
     
     

}


Related Solutions

I get an error in my code, here is the prompt and code along with the...
I get an error in my code, here is the prompt and code along with the error. Write a spell checking program (java) which uses a dictionary of words (input by the user as a string) to find misspelled words in a second string, the test string. Your program should prompt the user for the input string and the dictionary string. A valid dictionary string contains an alphabetized list of words. Functional requirements: For each word in the input string,...
Java Counter Program I can't get my program to add the number of times a number...
Java Counter Program I can't get my program to add the number of times a number was landed on for my if statements for No12 through No2. My Code: import java.util.Scanner; import java.util.Random;    import java.lang.*;       public class Dice    {               public static void main(String[] args)        {            Scanner in = new Scanner(System.in);            int Continue = 1;            //randomnum = new Random();           ...
My code: import java.util.Random; import java.util.Scanner; public class RollDice { public static void main(String[] args) {...
My code: import java.util.Random; import java.util.Scanner; public class RollDice { public static void main(String[] args) { int N; Scanner keybd = new Scanner(System.in); int[] counts = new int[12];    System.out.print("Enter the number of trials: "); N = keybd.nextInt();    Random die1 = new Random(); Random die2 = new Random(); int value1, value2, sum; for(int i = 1; i <= N; i++) { value1 = die1.nextInt(6) + 1; value2 = die2.nextInt(6) + 1; sum = value1 + value2; counts[sum-1]++; }   ...
CODE: C# using System; public static class Lab6 { public static void Main() { // declare...
CODE: C# using System; public static class Lab6 { public static void Main() { // declare variables int hrsWrked; double ratePay, taxRate, grossPay, netPay=0; string lastName; // enter the employee's last name Console.Write("Enter the last name of the employee => "); lastName = Console.ReadLine(); // enter (and validate) the number of hours worked (positive number) do { Console.Write("Enter the number of hours worked (> 0) => "); hrsWrked = Convert.ToInt32(Console.ReadLine()); } while (hrsWrked < 0); // enter (and validate) the...
I am struggling with this java code ublic class HW2_Q4 {    public static void main(String[]...
I am struggling with this java code ublic class HW2_Q4 {    public static void main(String[] args) {        // Define the input string. Note that I could have written it all on a        // single line, but I broke it up to match the question.        String input = "Book , Cost , Number\n"                    + "Hamlet , 24.95 , 10\n"                    + "King Lear , 18.42...
// I can't get my cpp file to work with my header file and it always...
// I can't get my cpp file to work with my header file and it always says the error comes from compatibility I am using Visual Studio 2015 below is the error only my file path and program name has been erased. The issue comes up in my cpp file with the size_t empty and full functions. // Error (active)       declaration is incompatible with "bool ListType::empty()" (declared at line 12 of ListType.h)         // ListType header file #ifndef...
whats wrong here? import java.util.Scanner; public class AirportParking2 {    public static void main(String[] args) {...
whats wrong here? import java.util.Scanner; public class AirportParking2 {    public static void main(String[] args) {        Scanner scnr = new Scanner(System.in);        int parkmins;        System.out.print("Enter minutes parked");        parkmins = scnr.nextInt();        if(parkmins < 0)            System.out.println("Invalid");        else {            if(parkmins > 30)                int numbDay = parkmins/(60*24);                parkmins -= (numbDay*24*60);                parkfee = 24 * numbDay;...
Create a new Java file, containing this code public class DataStatsUser { public static void main...
Create a new Java file, containing this code public class DataStatsUser { public static void main (String[] args) { DataStats d = new DataStats(6); d.append(1.1); d.append(2.1); d.append(3.1); System.out.println("final so far is: " + d.mean()); d.append(4.1); d.append(5.1); d.append(6.1); System.out.println("final mean is: " + d.mean()); } } This code depends on a class called DataStats, with the following API: public class DataStats { public DataStats(int N) { } // set up an array (to accept up to N doubles) and other member...
Correct the code: import java.util.Scanner; public class Ch7_PrExercise5 { public static void main(String[] args) {   ...
Correct the code: import java.util.Scanner; public class Ch7_PrExercise5 { public static void main(String[] args) {    Scanner console = new Scanner(System.in);    double radius; double height; System.out.println("This program can calculate "+ "the area of a rectangle, the area "+ "of a circle, or volume of a cylinder."); System.out.println("To run the program enter: "); System.out.println("1: To find the area of rectangle."); System.out.println("2: To find the area of a circle."); System.out.println("3: To find the volume of a cylinder."); System.out.println("-1: To terminate the...
Convert into pseudo-code for below code =============================================== class Main {    public static void main(String args[])...
Convert into pseudo-code for below code =============================================== class Main {    public static void main(String args[])    {        Scanner s=new Scanner(System.in);        ScoresSingleLL score=new ScoresSingleLL();        while(true)                   // take continuous inputs from user till he enters -1        {            System.out.println("1--->Enter a number\n-1--->exit");            System.out.print("Enter your choice:");            int choice=s.nextInt();            if(choice!=-1)            {                System.out.print("Enter the score:");...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT