Java Day End isTodayWithinPeriod(Date periodStart, Date periodEnd)

Here you can find the source of isTodayWithinPeriod(Date periodStart, Date periodEnd)

Description

is Today Within Period

License

Open Source License

Declaration

public static boolean isTodayWithinPeriod(Date periodStart, Date periodEnd) 

Method Source Code

//package com.java2s;
/*//from   w w w . ja va2  s.  com
* (C) Copyright 2009-2013 Manaty SARL (http://manaty.net/) and contributors.
*
* Licensed under the GNU Public Licence, 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.gnu.org/licenses/gpl-2.0.txt
*
* 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 {
    public static boolean isTodayWithinPeriod(Date periodStart, Date periodEnd) {
        return isDateWithinPeriod(new Date(), periodStart, periodEnd);
    }

    public static boolean isDateWithinPeriod(Date date, Date periodStart, Date periodEnd) {
        if (date == null)
            return true;

        if (periodStart == null && periodEnd == null)
            return true;

        Date start = (periodStart != null) ? setDateToStartOfDay(periodStart) : null;
        Date end = (periodEnd != null) ? setDateToStartOfDay(periodEnd) : null;

        if (start != null && end != null && start.after(end))
            throw new IllegalArgumentException("To test if a date is within a period, the period must be valid");

        Date dateToCheck = setDateToStartOfDay(date);
        boolean result = false;
        if (start != null && end != null)
            result = (dateToCheck.after(start) || dateToCheck.equals(start))
                    && (dateToCheck.before(end) || dateToCheck.equals(end));
        else if (start != null)
            result = (dateToCheck.after(start) || dateToCheck.equals(start));
        else
            result = (dateToCheck.before(end) || dateToCheck.equals(end));

        return result;

    }

    public static Date setDateToStartOfDay(Date date) {
        Date result = null;

        if (date != null) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            int year = calendar.get(Calendar.YEAR);
            int month = calendar.get(Calendar.MONTH);
            int day = calendar.get(Calendar.DATE);
            calendar.set(year, month, day, 0, 0, 0);
            result = calendar.getTime();
        }

        return result;
    }
}

Related

  1. isInWorkDay(Calendar start)
  2. isMoreThenMonth(Date startDate, Date enDate)
  3. isNowBetween(Date start, Date end)
  4. isSameDay(Calendar cal1, Calendar cal2)
  5. isSameDay(final Calendar calendar1, final Calendar calendar2)
  6. isValidSendDate(Date sendDate)
  7. isWorkingDay(final Calendar calendar, final Long[] holidays)
  8. postponeWorkingDay(final Calendar calendar, final int measureUnit, final int amount, final Long[] holidays)
  9. previousWorkingDay(final Calendar calendar, final Long[] holidays)