- /* Title: Gregorian Calendar
- * Authour: Robert B.
- * Assignemnt: Final ISU (Culnamating)
- * Date: June 18 2012
- */
- public class finalISU
- {
- public static void main (String[] args)
- {
- //variable declarations
- int mon = 1, date = 1900, y = 1900, y2 = 0, mon2 = 0, date2 = 0, n, i = 0, q = 0;
- int fday, start = 1900, dtotal = 0, dnum = 365, after;
- char option, loop1 = '$', loop2 = '$';
- boolean isleap, check = true;
- isleap = leapyear (y);
- while (loop1 == '$')
- {
- //prompts user for options
- System.out.println ("Please choose one of the following options: ");
- System.out.println ("(A) full calender/ (B) month / (C) day from date / (D) date from days / (E) Book Appointment");
- System.out.print ("Option: ");
- option = In.getChar ();
- //space
- System.out.println ();
- System.out.println ();
- System.out.println ();
- switch (option)
- {
- case 'A':
- System.out.print ("Enter Year: ");
- y = In.getInt ();
- while (y < 1900)
- {
- System.out.println ("Error: must be a year after 1900");
- System.out.print ("Enter Year: ");
- y = In.getInt ();
- }
- //go to completecal method for info
- completecal (y);
- break;
- case 'B':
- System.out.print ("Enter Year: ");
- y = In.getInt ();
- while (y < 1900)
- {
- System.out.println ("Error: must be a year after 1900");
- System.out.print ("Enter Year: ");
- y = In.getInt ();
- }
- System.out.print ("Enter Month (1-12): ");
- mon = In.getInt ();
- while (mon < 1 || mon > 12)
- {
- System.out.println ("Error: Invalid month");
- System.out.println ("Enter Month (1-12): ");
- mon = In.getInt ();
- }
- //
- monthcal (y, mon);
- break;
- case 'C':
- System.out.print ("Enter Year: ");
- y = In.getInt ();
- while (y < 1900)
- {
- System.out.println ("Error: must be a year after 1900");
- System.out.print ("Enter Year: ");
- y = In.getInt ();
- }
- //
- //
- System.out.print ("Enter Month (1-12): ");
- mon = In.getInt ();
- while (mon < 1 || mon > 12)
- {
- System.out.println ("Error: Invalid month");
- System.out.print ("Enter Month (1-12): ");
- mon = In.getInt ();
- }
- //
- System.out.print ("Enter Date (1-31): ");
- date = In.getInt ();
- //
- while ((date < 1 || date > 31) || ((mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) && date > 31))
- {
- System.out.println ("Error: Date must correspond to month");
- System.out.print ("Enter Date (1-31): ");
- date = In.getInt ();
- }
- while ((mon == 4 || mon == 6 || mon == 9 || mon == 11) && date > 30)
- {
- System.out.println ("Error: Date must correspond to month");
- System.out.print ("Enter Date (1-31): ");
- date = In.getInt ();
- }
- while ((mon == 2 && isleap == true) && date > 29)
- {
- System.out.println ("Error: Date must correspond to month");
- System.out.print ("Enter Date (1-31): ");
- date = In.getInt ();
- }
- //
- WeekDay (y, mon, date);
- break;
- case 'D':
- //
- System.out.print ("Enter Today's Year: ");
- y = In.getInt ();
- //
- while (y < 1900)
- {
- System.out.println ("Error: Must be a year after 1900");
- System.out.print ("Enter Today's Year: ");
- y = In.getInt ();
- }
- System.out.print ("Enter Month (1-12): ");
- mon = In.getInt ();
- while (mon < 1 || mon > 12)
- {
- System.out.println ("Error: Invalid Month");
- System.out.print ("Enter Month (1-12): ");
- mon = In.getInt ();
- }
- System.out.print ("Enter Date (1-31): ");
- date = In.getInt ();
- //
- while ((date < 1 || date > 31) || ((mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) && date > 31))
- {
- System.out.println ("Error: Date must correspond to month");
- System.out.print ("Enter Date (1-31): ");
- date = In.getInt ();
- }
- while ((mon == 4 || mon == 6 || mon == 9 || mon == 11) && date > 30)
- {
- System.out.println ("Error: Date must correspond to month");
- System.out.print ("Enter Date (1-31): ");
- date = In.getInt ();
- }
- while ((mon == 2 && isleap == true) && date > 29)
- {
- System.out.println ("Error: Date must correspond to month");
- System.out.print ("Enter Date (1-31): ");
- date = In.getInt ();
- }
- System.out.println ("Enter number of days after today: ");
- after = In.getInt ();
- addDay (year, month, date, after);
- System.out.println ();
- case 'E':
- System.out.print ("Enter number of timeslots: ");
- n = In.getInt ();
- int[] slots = new int [n];
- int[] slote = new int [n];
- int holds = 0, holde = 0;
- while (0 < n)
- {
- while (loop2 == '$')
- {
- System.out.print ("Enter Year of reservation: ");
- y = In.getInt ();
- while (y < 1900)
- {
- System.out.println ("Error: Must be a year after 1900");
- System.out.print ("Enter Year of reservations: ");
- y = In.getInt ();
- }
- System.out.print ("Enter Month of reservation (1-12): ");
- mon = In.getInt ();
- while (mon < 1 || mon > 12)
- {
- System.out.println ("Error: Invalid Month");
- System.out.print ("Enter Month of reservation (1-12): ");
- }
- System.out.print ("Enter date of reservation (1-31): ");
- date = In.getInt ();
- while ((date < 1 || date > 31) || ((mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) && date > 31))
- {
- System.out.println ("Error: Date must correspond to month");
- System.out.print ("Enter Date of reservation (1-31): ");
- date = In.getInt ();
- }
- while ((mon == 4 || mon == 6 || mon == 9 || mon == 11) && date > 30)
- {
- System.out.println ("Error: Date must correspond to month");
- System.out.print ("Enter Date of reservation (1-31): ");
- date = In.getInt ();
- }
- while ((mon == 2 && isleap == true) && date > 29)
- {
- System.out.println ("Error: Date must correspond to month");
- System.out.print ("Enter Date of reservation (1-31): ");
- date = In.getInt ();
- }
- if (mon < 3)
- {
- mon = mon + 12;
- y = y - 1;
- }
- fday = ((date + (2 * mon) + (6 * mon + 1) / 10) + y + (y / 4) - (y / 100) = (y / 400) + 1) % 7);
- if (mon > 12)
- {
- mon = mon - 12;
- y = y + 1;
- }
- while (fday == 1 || fday == 2 || fday = 3 || fday = 4 || fday == 5)
- {
- System.out.println ("Error: The date is not a Saturday or Sunday. Try again.");
- System.out.print ("Enter Date of reservation (1-31): ");
- date = In.getInt ();
- }
- if (mon < 3)
- {
- mon = mon + 12;
- y = y - 1;
- }
- fday = ((date + (2 ^ mon) + 6 * (mon + 1) / 10) + y + (y / 4) - (y / 100) + y / 400) + 1) % 7;
- if (month > 12)
- {
- month = month - 12;
- year = year + 1;
- }
- }
- }
- }
- }
- public static boolean leapyear (int y)
- {
- if ((y % 4 == 0) && (y % 100 != 0 || y % 400 == 0))
- return true;
- else
- return false;
- }
- }