Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Contact

Java 

While loops - creating calendar.

If anyone can help me, I'd greatly appreciate it.

Basically the shells outlines everything for you. I just need the methods.

Here are the instructions:
http://pastebin.com/H3jaMJgf

Shell: http://www.filedropper.com/printcalendershell

If you can provide a Skype so we can talk that'll be great!
(Nov 19, 2014 09:53 PM)Apple User Wrote:  If anyone can help me, I'd greatly appreciate it.

If you can provide a Skype so we can talk that'll be great!

Calendar* and can you be a bit more specific, maybe link the homework to us, because it's a homework I take it.
Code
while (!calendarCreated)
    MyStaticCalendar.getMonth().createDaysRow();

Anything else requires some more information :P
[Image: TEGE4Zx.png]

Puzzle level: 2/5
Edited main post for those whom are interested in helping or doing it.
I know this is going to be an absolutely silly question, but do you actually have any questions on syntax or logic? Or even errors that you need help with? Or are you just looking for someone to do it for you? This is pretty basic loop logic so I'm sure there are plenty of people here who can help.
I have a couple methods down already.
I just need to someone to look at my code and see what I'm missing at this point.
(Nov 20, 2014 01:09 PM)Apple User Wrote:  I have a couple methods down already.
I just need to someone to look at my code and see what I'm missing at this point.

Where's your code then?

35 characters
[Image: TEGE4Zx.png]

Puzzle level: 2/5
Code
import java.util.Scanner;

public class PrintCalendar {

   /** Main method */

   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 a full year: ");

      int year = scanner.nextInt();

      // Prompt the user to enter month
      System.out.print("Enter month number: ");

      int month = scanner.nextInt();

      // Print calendar for the month of the year
      printMonth(year, month);

   }

   /** 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 **/

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

   }

   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;

      if (month == 4 || month == 6 || month == 9 || month == 11)

      return 30;

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

   }

}

This is my code as of right now. The problem is... it only prints the month I enter and not all the months.
Have you done this?

35 characters


Possibly Related Threads...
Thread / Author Replies Views Last Post
[Python] by n00b.caApr 4, 2020 12:39 PM 3 205 Apr 4, 2020 12:39 PM
Last Post: n00b.ca
[Java] by YukinoNov 12, 2019 05:50 PM 6 434 Nov 12, 2019 05:50 PM
Last Post: Accord
[Python] by Red-LeonardJan 9, 2019 10:12 PM 4 173 Jan 9, 2019 10:12 PM
Last Post: Red-Leonard