Here you can find the source of getEndOfMonth(long date)
Parameter | Description |
---|---|
date | Base date |
public static long getEndOfMonth(long date)
//package com.java2s; import java.util.Calendar; public class Main { private static Calendar CALENDAR = Calendar.getInstance(); /**/*from w ww. j ava 2 s . com*/ * Returns the date corresponding to the end of the month. * * @param date Base date * @return End of month. */ public static long getEndOfMonth(long date) { return getMonth(date, 1); } private static long getMonth(long date, int increment) { long result; Calendar calendar = CALENDAR; synchronized (calendar) { calendar.setTimeInMillis(date); if (increment == -1) { calendar.set(Calendar.DAY_OF_MONTH, 1); result = startOfDayInMillis(calendar.getTimeInMillis()); } else { calendar.add(Calendar.MONTH, 1); calendar.set(Calendar.DAY_OF_MONTH, 1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MINUTE, 0); calendar.add(Calendar.MILLISECOND, -1); result = calendar.getTimeInMillis(); } } return result; } /** * Returns day in millis with the hours, milliseconds, seconds and minutes * set to 0. * * @param date long used in calculating start of day * @return Start of <code>date</code> */ public static long startOfDayInMillis(long date) { Calendar calendar = CALENDAR; synchronized (calendar) { calendar.setTimeInMillis(date); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MINUTE, 0); return calendar.getTimeInMillis(); } } }