import java.util.Scanner; public class DisplayCalendar{ public static void main(String[] args){ int n,i; String[] months = {"January","February","March","April","May","June","July","August","September","October","November","December"}; Scanner scanner = new Scanner(System.in); System.out.print("Please input a year: "); int year = scanner.nextInt(); System.out.print("Please input the first day: "); int firstDay = scanner.nextInt(); String[] result = callday(firstDay,year); for(i = 0; i < 12; i++){ System.out.println(" "+months[i]+" "+year); System.out.print("____________________________________\n"); System.out.print("Sun Mon Tue Wed Thu Fri Sat\n"); System.out.println(result[i]+"\n"); } } public static String[] callday(int num1, int num2){ String[] result = new String[12]; int firstDay = num1; int year = num2; int n,day,init,i; init = firstDay; for(n = 0; n < 12; n++){ result[n] = " "; for(i = 0; i < init%7; i++) result[n] += " "; if(n != 1){ if(n == 0 || n == 2 || n == 4 || n == 6 || n == 7 || n == 9 || n == 11){ for(day = 1; day <= 31; day++){ init++; result[n] += day; if(day <= 7) result[n] += " "; else result[n] += " "; if(init%7 == 0) result[n] += "\n"; } } else { for(day = 1; day <= 30; day++){ init++; result[n] += day; if(day <= 7) result[n] += " "; else result[n] += " "; if(init%7 == 0) result[n] += "\n"; } } } else { if(year%4 == 0 && year%100 != 0){ for(day = 1; day <= 29; day++){ init++; result[n] += day; if(day <= 7) result[n] += " "; else result[n] += " "; if(init%7 == 0) result[n] += "\n"; } }else if(year%400 == 0){ for(day = 1; day <= 29; day++){ init++; result[n] += day; if(day <= 7) result[n] += " "; else result[n] += " "; if(init%7 == 0) result[n] += "\n"; } }else{ for(day = 1; day <= 28; day++){ init++; result[n] += day; if(day <= 7) result[n] += " "; else result[n] += " "; if(init%7 == 0) result[n] += "\n"; } } } } return result; } }