Java Calendar Week getEndOfWeek(Calendar calendar, Date date, int dayStartOfWeek)

Here you can find the source of getEndOfWeek(Calendar calendar, Date date, int dayStartOfWeek)

Description

get End Of Week

License

Apache License

Parameter

Parameter Description
calendar a parameter
date a parameter
dayStartOfWeek this is the same constants as Calendar.MONDAY etc

Return

a date object set to the end of the week, eg. yyyy-mm-dd 23:59:59 999

Declaration

public static Date getEndOfWeek(Calendar calendar, Date date, int dayStartOfWeek) 

Method Source Code


//package com.java2s;
/*//from  w w w  .j  a  v a 2  s  .  c o m
 * Copyright 2010-2011 Heads Up Development Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.util.Calendar;
import java.util.Date;

public class Main {
    /**
     * convenience wrapper assuming the start of the week is monday
     *
     * @param calendar
     * @param date
     * @return a date object set to the end of the week, eg. yyyy-mm-dd 23:595:59 999
     */
    public static Date getEndOfWeek(Calendar calendar, Date date) {
        return getEndOfWeek(calendar, date, Calendar.MONDAY);
    }

    /**
     * @param calendar
     * @param date
     * @param dayStartOfWeek this is the same constants as Calendar.MONDAY etc
     * @return a date object set to the end of the week, eg. yyyy-mm-dd 23:59:59 999
     */
    public static Date getEndOfWeek(Calendar calendar, Date date, int dayStartOfWeek) {
        ensureStateValid(calendar, date);
        calendar.setTime(date);
        setDateToZeroHour(calendar);
        do {
            calendar.add(Calendar.DATE, 1);
        } while (calendar.get(Calendar.DAY_OF_WEEK) != dayStartOfWeek);
        calendar.add(Calendar.MILLISECOND, -1);
        return calendar.getTime();
    }

    private static void ensureStateValid(Calendar calendar, Date date) {
        ensureStateValid(calendar);
        if (date == null) {
            throw new IllegalStateException("Date object was null, this is required");
        }
    }

    private static void ensureStateValid(Calendar calendar) {
        if (calendar == null) {
            throw new IllegalStateException("Calendar object was null, this is required");
        }
    }

    private static void setDateToZeroHour(Calendar calendar) {
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
    }
}

Related

  1. getDayOfWeek(Calendar c)
  2. getDayOfWeek(Calendar cal)
  3. getDayOfWeek(Calendar date)
  4. getDayOfWeekNumber(Calendar cal)
  5. getDayOfWeekString1(Calendar currentDate)
  6. getFirstDateInMonthForDayOfWeek(Calendar cal, final int dayOfWeek)
  7. getFirstDayOfWeek(Calendar cal)
  8. getFirstDayOfWeek(Calendar calendar)
  9. getFirstOfMonthDayOfWeek(GregorianCalendar aCalendar)