Exercise14_10.java package abstract_class_and_Interfaces;import java.util.*;public class Exercise14_10 {public static void main(String[] args) {// TODO Auto-generated method stubScanner input = new Scanner(System.in);int month = input.nextI
package abstract_class_and_Interfaces; import java.util.*; public class Exercise14_10 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); int month = input.nextInt(); int year = input.nextInt(); int day = 1; Calendar c = new GregorianCalendar(year,month-1,day); int firstDay = c.get(Calendar.DAY_OF_WEEK); int dayOfMonth = c.getActualMaximum(Calendar.DAY_OF_MONTH); printMonthTitle(year,month); printMonthBody(year,month, firstDay, dayOfMonth); input.close(); } public 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 "); } public static String getMonthName(int month) { String monthName = " "; switch(month) { case 1: monthName = "January"; break; case 2: monthName = "Febuary"; 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; } public static void printMonthBody(int year, int month, int startDay, int dayOfMonth) { for(int i = 1; i< startDay;i++) { System.out.print(" "); } for(int i = 1;i <= dayOfMonth; i++) { if((i + startDay-2) % 7 ==0) System.out.println(); if(i <10 ) { System.out.print(" "); } System.out.print(" "+ i ); } } }