Here you can find the source of getLastDayOfMonth(Calendar c)
public static Date getLastDayOfMonth(Calendar c)
//package com.java2s; //License from project: Apache License import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Main { public static SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); public static Date getLastDayOfMonth(Calendar c) { int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH) + 1; int day = 1; if (month > 11) { month = 0;/*www .ja v a2 s.co m*/ year = year + 1; } c.set(year, month, day - 1, 0, 0, 0); return c.getTime(); } public static int get(int field, Date date) { Calendar c = Calendar.getInstance(); c.setTime(date); return c.get(field); } /** * Sets the specified field to a date returning a new object. * This does not use a lenient calendar. * The original date object is unchanged. * * @param date the date, not null * @param calendarField the calendar field to set the amount to * @param amount the amount to set * @return a new Date object set with the specified value * @throws IllegalArgumentException if the date is null * @since 2.4 */ private static Date set(Date date, int calendarField, int amount) { if (date == null) { throw new IllegalArgumentException("The date must not be null"); } // getInstance() returns a new object, so this method is thread safe. Calendar c = Calendar.getInstance(); c.setLenient(false); c.setTime(date); c.set(calendarField, amount); return c.getTime(); } public static String getTime(String pattern) { return new SimpleDateFormat(pattern).format(new Date()); } }