Package org.jboss.dashboard.commons.misc

Source Code of org.jboss.dashboard.commons.misc.CalendarUtils$CalendarRangeUtils

/**
* Copyright (C) 2012 JBoss Inc
*
* 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.
*/
package org.jboss.dashboard.commons.misc;

import org.jboss.dashboard.LocaleManager;
import org.jfree.data.time.Quarter;

import java.util.Calendar;
import java.util.Locale;
import java.text.SimpleDateFormat;

public class CalendarUtils {

    /**
     * Get calendar instance using platform current locale.
     * @return The calendar instance.
     */
    public static Calendar getInstance() {
        return Calendar.getInstance(LocaleManager.currentLocale());
    }

    public static class CalendarRangeUtils {

        public static Calendar setAtDayStart(Calendar calendar) {
            calendar.set(Calendar.HOUR_OF_DAY, 0);
            calendar.set(Calendar.MINUTE, 0);
            calendar.set(Calendar.SECOND, 0);
            return calendar;
        }

        public static Calendar setAtDayEnd(Calendar calendar) {
            calendar.set(Calendar.HOUR_OF_DAY, 23);
            calendar.set(Calendar.MINUTE, 59);
            calendar.set(Calendar.SECOND, 59);
            return calendar;
        }

        public static Calendar[] getLastHour(Calendar referenceCalendar) {
            Calendar calendarFrom = (Calendar) referenceCalendar.clone();
            calendarFrom.add(Calendar.HOUR, -1);
            return new Calendar[] {calendarFrom, referenceCalendar};
        }

        public static Calendar[] getLast12Hours(Calendar referenceCalendar) {
            Calendar calendarFrom = (Calendar) referenceCalendar.clone();
            calendarFrom.add(Calendar.HOUR, -12);
            return new Calendar[] {calendarFrom, referenceCalendar};
        }

        public static Calendar[] getToday(Calendar referenceCalendar) {
            Calendar calendarFrom = (Calendar) referenceCalendar.clone();
            setAtDayStart(calendarFrom);
            return new Calendar[] {calendarFrom, referenceCalendar};
        }

        public static Calendar[] getYesterday(Calendar referenceCalendar) {
            Calendar calendarFrom = (Calendar) referenceCalendar.clone();
            calendarFrom.add(Calendar.DAY_OF_WEEK, -1);
            setAtDayStart(calendarFrom);
            Calendar calendarTo = (Calendar) referenceCalendar.clone();
            calendarTo.add(Calendar.DAY_OF_WEEK, -1);
            setAtDayEnd(calendarTo);
            return new Calendar[] {calendarFrom, calendarTo};
        }

        public static Calendar[] getLast7Days(Calendar referenceCalendar) {
            Calendar calendarFrom = (Calendar) referenceCalendar.clone();
            calendarFrom.add(Calendar.DAY_OF_WEEK, -7);
            setAtDayStart(calendarFrom);
            return new Calendar[] {calendarFrom, referenceCalendar};
        }

        public static Calendar[] getThisMonth(Calendar referenceCalendar) {
            Calendar calendarFrom = (Calendar) referenceCalendar.clone();
            calendarFrom.set(Calendar.DAY_OF_MONTH, 1);
            setAtDayStart(calendarFrom);
            return new Calendar[] {calendarFrom, referenceCalendar};
        }

        public static Calendar[] getLastMonth(Calendar referenceCalendar) {
            Calendar calendarFrom = (Calendar) referenceCalendar.clone();
            calendarFrom.add(Calendar.MONTH, -1);
            calendarFrom.set(Calendar.DAY_OF_MONTH,1);
            setAtDayStart(calendarFrom);
            Calendar calendarTo = (Calendar) referenceCalendar.clone();
            calendarTo.add(Calendar.MONTH, -1);
            calendarTo.set(Calendar.DAY_OF_MONTH, calendarTo.getActualMaximum(Calendar.DAY_OF_MONTH));
            setAtDayEnd(calendarTo);
            return new Calendar[] {calendarFrom, calendarTo};
        }

        public static Calendar[] getThisQuarter(Calendar referenceCalendar) {
            Quarter quarter = new Quarter(referenceCalendar.getTime());
            Calendar startCal = getInstance();
            Calendar endCal = getInstance();
            long start = quarter.getFirstMillisecond(getInstance());
            long end = quarter.getLastMillisecond(getInstance());
            startCal.setTimeInMillis(start);
            endCal.setTimeInMillis(end);
            return new Calendar[] {startCal, endCal};
        }

        public static Calendar[] getLastQuarter(Calendar referenceCalendar) {
            Quarter quarter = new Quarter(referenceCalendar.getTime());
            Calendar startCal = getInstance();
            Calendar endCal = getInstance();
            long start = quarter.previous().getFirstMillisecond(getInstance());
            long end = quarter.previous().getLastMillisecond(getInstance());
            startCal.setTimeInMillis(start);
            endCal.setTimeInMillis(end);
            return new Calendar[] {startCal, endCal};
        }

        public static Calendar[] getLast6Months(Calendar referenceCalendar) {
            Calendar calendarFrom = (Calendar) referenceCalendar.clone();
            calendarFrom.add(Calendar.MONTH, -6);
            setAtDayStart(calendarFrom);
            return new Calendar[] {calendarFrom, referenceCalendar};
        }

        public static Calendar[] getThisYear(Calendar referenceCalendar) {
            Calendar calendarFrom = (Calendar) referenceCalendar.clone();
            calendarFrom.set(Calendar.MONTH, calendarFrom.getActualMinimum(Calendar.MONTH));
            calendarFrom.set(Calendar.DAY_OF_MONTH, 1);
            setAtDayStart(calendarFrom);
            return new Calendar[] {calendarFrom, referenceCalendar};
        }

        public static Calendar[] getLastYear(Calendar referenceCalendar) {
            Calendar calendarFrom = (Calendar) referenceCalendar.clone();
            calendarFrom.add(Calendar.YEAR, -1);
            calendarFrom.set(Calendar.MONTH, calendarFrom.getActualMinimum(Calendar.MONTH));
            calendarFrom.set(Calendar.DAY_OF_MONTH, 1);
            setAtDayStart(calendarFrom);
            Calendar calendarTo = (Calendar) referenceCalendar.clone();
            calendarTo.add(Calendar.YEAR, -1);
            calendarTo.set(Calendar.MONTH, calendarTo.getActualMaximum(Calendar.MONTH));
            calendarTo.set(Calendar.DAY_OF_MONTH, calendarTo.getActualMaximum(Calendar.DAY_OF_MONTH));
            setAtDayEnd(calendarTo);
            return new Calendar[] {calendarFrom, calendarTo};
        }
    }

    // Testing.

    public static void main(String[] args) {
        Calendar c = Calendar.getInstance(new Locale("es"));
        System.out.println("\nLast hour: ");
        print(CalendarRangeUtils.getLastHour(c));
        System.out.println("\nLast 12 hours: ");
        print(CalendarRangeUtils.getLast12Hours(c));
        System.out.println("\ntoday: ");
        print(CalendarRangeUtils.getToday(c));
        System.out.println("\nyesterday: ");
        print(CalendarRangeUtils.getYesterday(c));
        System.out.println("\nLast 7days: ");
        print(CalendarRangeUtils.getLast7Days(c));
        System.out.println("\nthis month: ");
        print(CalendarRangeUtils.getThisMonth(c));
        System.out.println("\nlast month: ");
        print(CalendarRangeUtils.getLastMonth(c));
        System.out.println("\nThis quarter: ");
        print(CalendarRangeUtils.getThisQuarter(c));
        System.out.println("\nLast quarter: ");
        print(CalendarRangeUtils.getLastQuarter(c));
        System.out.println("\nLast 6 months: ");
        print(CalendarRangeUtils.getLast6Months(c));
        System.out.println("\nthis year: ");
        print(CalendarRangeUtils.getThisYear(c));
        System.out.println("\nlast year: ");
        print(CalendarRangeUtils.getLastYear(c));
    }

    protected static void print(Calendar[] calendar) {
        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
        System.out.print(" - FROM: " + sdf.format(calendar[0].getTime()) + " - TO: " + sdf.format(calendar[1].getTime()));
    }
}
TOP

Related Classes of org.jboss.dashboard.commons.misc.CalendarUtils$CalendarRangeUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.