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

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...
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...
How should I answer this question if I can't remember my dreams For a few days,...
How should I answer this question if I can't remember my dreams For a few days, record your dreams first thing in the morning. Discuss what is going on in your life related to your dream as further evidence that our dream activity is further processing of relevant information.
Consider the following code: public class Example { public static void doOp(Op op) { boolean result...
Consider the following code: public class Example { public static void doOp(Op op) { boolean result = op.operation(true, false); System.out.println(result); } public static void main(String[] args) { doOp(new AndOperation()); doOp(new OrOperation()); } } main's output: false true Define any interfaces and/or classes necessary to make this output happen. Multiple answers are possible. You may not modify any of the code in Example.
(Python) This is my code for printing a roster for a team. When I print to...
(Python) This is my code for printing a roster for a team. When I print to the console, it makes the first player's name show up as number 2, and it says [] (its just blank for 1). How can I fix that so the first player's name is 1, not skipping 1 and going to 2. def file_to_dictionary(rosterFile): myDictionary={} myDict=[]    with open(rosterFile,'r') as f: for line in f:    (num,first,last,position)=line.split() myDictionary[num]= myDict myDict=[first, last, position] print (myDictionary) return...
Task 2/2: Java program Based upon the following code: public class Main {   public static void...
Task 2/2: Java program Based upon the following code: public class Main {   public static void main( String[] args ) {     String alphabet = "ABCDEFGHIJKLMNMLKJIHGFEDCBA";     for( <TODO> ; <TODO> ; <TODO> ) {       <TODO>;     } // Closing for loop   } // Closing main() } // Closing class main() Write an appropriate loop definition and in-loop behavior to determine if the alphabet string is a palindrome or not. A palindrome is defined as a string (or more generally, a token) which...
DESCRIBE WHAT THE FOLLOWING JAVA CODE DOES: public class Main{ public static void main(String[] args) {...
DESCRIBE WHAT THE FOLLOWING JAVA CODE DOES: public class Main{ public static void main(String[] args) { new MyFrame(); } } import javax.swing.*; public class MyFrame extends JFrame{ MyPanel panel; MyFrame(){ panel = new MyPanel(); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.add(panel); this.pack(); this.setLocationRelativeTo(null); this.setVisible(true); } } import java.awt.*; import javax.swing.*; public class MyPanel extends JPanel{ //Image image; MyPanel(){ //image = new ImageIcon("sky.png").getImage(); this.setPreferredSize(new Dimension(500,500)); } public void paint(Graphics g) { Graphics2D g2D = (Graphics2D) g; //g2D.drawImage(image, 0, 0, null); g2D.setPaint(Color.blue); g2D.setStroke(new BasicStroke(5)); g2D.drawLine(0, 0, 500,...
This is my C language code. I have some problems with the linked list. I can't...
This is my C language code. I have some problems with the linked list. I can't store the current. After current = temp, I don't know how to move to the next node. current = current-> next keeps making current into NULL. #include #include #include #include struct node{int data; struct node *next;}; int main() {     struct node *head, *current, *temp, *trash;     srand(time(0));     int randNumber = rand()%51;     if(randNumber != 49)     {         temp = (struct node*)malloc(sizeof(struct node));         current = (struct node*)malloc(sizeof(struct node));...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT