Here you can find the source of getEndOfMonth(Date date)
public static Date getEndOfMonth(Date date)
//package com.java2s; /*//from w w w .ja v a 2s . c o m * Copyright (c) 2014 Brockmann Consult GmbH (info@brockmann-consult.de) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 3 of the License, or (at your option) * any later version. * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, see http://www.gnu.org/licenses/ */ import java.util.*; public class Main { public static Date getEndOfMonth(Date date) { final GregorianCalendar utcCalendar = createUtcCalendar(date); final int maxDay = utcCalendar.getActualMaximum(Calendar.DAY_OF_MONTH); utcCalendar.set(Calendar.DAY_OF_MONTH, maxDay); return getEndOfDay(utcCalendar.getTime()); } public static GregorianCalendar createUtcCalendar() { return new GregorianCalendar(TimeZone.getTimeZone("UTC"), Locale.ENGLISH); } public static GregorianCalendar createUtcCalendar(Date date) { final GregorianCalendar calendar = new GregorianCalendar(TimeZone.getTimeZone("UTC"), Locale.ENGLISH); calendar.setTime(date); return calendar; } public static Date getEndOfDay(Date day) { final GregorianCalendar calendar = createUtcCalendar(day); calendar.add(Calendar.DAY_OF_MONTH, 1); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.HOUR_OF_DAY, 0); return calendar.getTime(); } }