Monthly Calender Program in Java

Introduction

  • In this blog, I am going to explain about the monthly calendar program in Java 

Software Requirements

  • Java, Notepad.
Program
  1. import java.util.*;  
  2. import java.text.*;  
  3.   
  4. public class MonthCalender {  
  5.   
  6.  public final static String[] monthcalender = {  
  7.   "January",  
  8.   "February",  
  9.   "March",  
  10.   "April",  
  11.   "May",  
  12.   "June",  
  13.   "July",  
  14.   "August",  
  15.   "September",  
  16.   "October",  
  17.   "November",  
  18.   "December"  
  19.  };  
  20.   
  21.  public final static int daysinmonths[] = {  
  22.   31,  
  23.   28,  
  24.   31,  
  25.   30,  
  26.   31,  
  27.   30,  
  28.   31,  
  29.   31,  
  30.   30,  
  31.   31,  
  32.   30,  
  33.   31  
  34.  };  
  35.   
  36.  private void displayMonth(int month, int year) {  
  37.   
  38.   // The number of days to leave blank at    
  39.   // the start of this month.    
  40.   
  41.   int blankdays = 0;  
  42.   System.out.println("  " + monthcalender[month] + " " + year);  
  43.   
  44.   if (month < 0 || month > 11) {  
  45.    throw new IllegalArgumentException(  
  46.     "Month " + month + " is not valid and must lie in between 0 and 11");  
  47.   }  
  48.   
  49.   GregorianCalendar cldr = new GregorianCalendar(year, month, 1);  
  50.   System.out.println("Sunday Monday Tuesday Wednesday Thursday Friday Saturday");  
  51.   
  52.   // Compute how much to leave before before the first day of the month.    
  53.   // getDay() returns 0 for Sunday.    
  54.   
  55.   blankdays = cldr.get(Calendar.DAY_OF_WEEK) - 1;  
  56.   int daysInMonth = daysinmonths[month];  
  57.   
  58.   if (cldr.isLeapYear(cldr.get(Calendar.YEAR)) && month == 1) {  
  59.   
  60.    ++daysInMonth;  
  61.   }  
  62.   
  63.   // Blank out the labels before 1st day of the month    
  64.   for (int i = 0; i < blankdays; i++) {  
  65.    System.out.print("   ");  
  66.   }  
  67.   
  68.   for (int i = 1; i <= daysInMonth; i++) {  
  69.   
  70.    // This "if" statement is simpler than messing with NumberFormat    
  71.    if (i <= 9) {  
  72.     System.out.print(" ");  
  73.    }  
  74.    System.out.print(i);  
  75.   
  76.    if ((blankdays + i) % 7 == 0) { // Wrap if EOL    
  77.     System.out.println();  
  78.    } else {  
  79.     System.out.print(" ");  
  80.    }  
  81.   }  
  82.  }  
  83.   
  84.  /**  
  85.   * Sole entry point to the class and application.  
  86.   * @param args Array of String arguments.  
  87.   */  
  88.  public static void main(String[] args) {  
  89.   
  90.   int mon, yr;  
  91.   MonthCalender moncldr = new MonthCalender();  
  92.   
  93.   if (args.length == 2) {  
  94.    moncldr.displayMonth(Integer.parseInt(args[0]) - 1, Integer.parseInt(args[1]));  
  95.   } else {  
  96.    Calendar todaycldr = Calendar.getInstance();  
  97.    moncldr.displayMonth(todaycldr.get(Calendar.MONTH), todaycldr.get(Calendar.YEAR));  
  98.   }  
  99.  }  
  100. }   
Output 
 
one