/home/caleb/ASDV-Java/Assignments/MP3_CalebFontenot/src/mp3_calebfontenot/CalendarWhile.java
/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package mp3_calebfontenot;

import java.util.Scanner;

/**
 *
 * @author caleb
 */
public class CalendarWhile {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter a year: ");
        int year = input.nextInt();
        System.out.print("Enter the first day of the year: ");
        int firstDay = input.nextInt();
        System.out.println();
        System.out.println();
        
        int startDay = firstDay;
        int numberOfDaysInMonth = 0;
        int month = 1;
        while (month <= 12) {
            System.out.print("         "); 
            switch (month) {
                case 1: System.out.println("January " + year); numberOfDaysInMonth = 31; break;
                case 2: System.out.println("February " + year);
                    if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) numberOfDaysInMonth = 29;
                    else numberOfDaysInMonth = 28;
                    break;
                case 3: System.out.println("March " + year); numberOfDaysInMonth = 31; break;
                case 4: System.out.println("April " + year); numberOfDaysInMonth = 30; break;
                case 5: System.out.println("May " + year); numberOfDaysInMonth = 31; break;
                case 6: System.out.println("June " + year); numberOfDaysInMonth = 30; break;
                case 7: System.out.println("July " + year); numberOfDaysInMonth = 31; break;
                case 8: System.out.println("August " + year); numberOfDaysInMonth = 31; break;
                case 9: System.out.println("September " + year); numberOfDaysInMonth = 30; break;
                case 10: System.out.println("October " + year); numberOfDaysInMonth = 31; break;
                case 11: System.out.println("November " + year); numberOfDaysInMonth = 30; break;
                case 12: System.out.println("December " + year); numberOfDaysInMonth = 31; break;
            }
            System.out.println("------------------------------");
            System.out.println(" Sun Mon Tue Wed Thu Fri Sat");
            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();
            System.out.println();
            startDay = (startDay + numberOfDaysInMonth) % 7;
            month++;
        } 
    }
}