import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Calendar; import java.util.GregorianCalendar; public class DateExample { public static void main(String[] args) { DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); System.out.println(dateFormat.format(DateUtils.getFirstDateOfMonth(2012, DateUtils.Month.FEBRUARY))); System.out.println(dateFormat.format(DateUtils.getLastDateOfMonth(2012, DateUtils.Month.FEBRUARY))); for (DateUtils.Month month : DateUtils.Month.values()) { System.out.println(month.getDisplayName()); } } } class DateUtils { enum Month { JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER; public String getDisplayName() { char[] charArray = name().toLowerCase().toCharArray(); charArray[0] = Character.toUpperCase(charArray[0]); return new String(charArray); } public int getId() { return ordinal(); } } public static Date getLastDateOfMonth(int year, Month month) { Calendar calendar = new GregorianCalendar(year, month.getId(), Calendar.DAY_OF_MONTH); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); return calendar.getTime(); } public static Date getFirstDateOfMonth(int year, Month month) { Calendar calendar = new GregorianCalendar(year, month.getId(), Calendar.DAY_OF_MONTH); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); return calendar.getTime(); } }