Example usage for com.liferay.portal.kernel.util Time getDate

List of usage examples for com.liferay.portal.kernel.util Time getDate

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util Time getDate.

Prototype

public static Date getDate(TimeZone tz) 

Source Link

Usage

From source file:com.liferay.portlet.calendar.service.impl.CalEventLocalServiceImpl.java

License:Open Source License

public void checkEvents() throws PortalException, SystemException {
    List<CalEvent> events = calEventFinder.findByFutureReminders();

    for (CalEvent event : events) {
        User user = userPersistence.fetchByPrimaryKey(event.getUserId());

        if (user == null) {
            deleteEvent(event);/*from ww w.  ja va 2  s.c  om*/

            continue;
        }

        Calendar now = CalendarFactoryUtil.getCalendar(user.getTimeZone(), user.getLocale());

        if (!event.isTimeZoneSensitive()) {
            Calendar temp = CalendarFactoryUtil.getCalendar();

            temp.setTime(Time.getDate(now));

            now = temp;
        }

        Calendar startDate = null;

        if (event.isTimeZoneSensitive()) {
            startDate = CalendarFactoryUtil.getCalendar(user.getTimeZone(), user.getLocale());
        } else {
            startDate = CalendarFactoryUtil.getCalendar();
        }

        if (event.isRepeating()) {
            double daysToCheck = Math
                    .ceil(CalEventConstants.REMINDERS[CalEventConstants.REMINDERS.length - 1] / Time.DAY);

            Calendar cal = (Calendar) now.clone();

            for (int i = 0; i <= daysToCheck; i++) {
                Recurrence recurrence = event.getRecurrenceObj();

                Calendar tzICal = CalendarFactoryUtil.getCalendar(TimeZoneUtil.getTimeZone(StringPool.UTC));

                tzICal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DATE));

                Calendar recurrenceCal = getRecurrenceCal(cal, tzICal, event);

                if (recurrence.isInRecurrence(recurrenceCal)) {
                    remindUser(event, user, recurrenceCal, now);
                }

                cal.add(Calendar.DAY_OF_YEAR, 1);
            }
        } else {
            startDate.setTime(event.getStartDate());

            remindUser(event, user, startDate, now);
        }
    }
}

From source file:com.liferay.portlet.calendar.service.impl.CalEventLocalServiceImpl.java

License:Open Source License

protected Calendar getRecurrenceCal(Calendar cal, Calendar tzICal, CalEvent event) {

    Calendar eventCal = CalendarFactoryUtil.getCalendar(TimeZoneUtil.getTimeZone(StringPool.UTC));

    eventCal.setTime(event.getStartDate());

    Calendar recurrenceCal = (Calendar) tzICal.clone();
    recurrenceCal.set(Calendar.HOUR_OF_DAY, eventCal.get(Calendar.HOUR_OF_DAY));
    recurrenceCal.set(Calendar.MINUTE, eventCal.get(Calendar.MINUTE));
    recurrenceCal.set(Calendar.SECOND, 0);
    recurrenceCal.set(Calendar.MILLISECOND, 0);

    if (event.isTimeZoneSensitive()) {
        int gmtDate = eventCal.get(Calendar.DATE);
        long gmtMills = eventCal.getTimeInMillis();

        eventCal.setTimeZone(cal.getTimeZone());

        int tziDate = eventCal.get(Calendar.DATE);
        long tziMills = Time.getDate(eventCal).getTime();

        if (gmtDate != tziDate) {
            int diffDate = 0;

            if (gmtMills > tziMills) {
                diffDate = (int) Math.ceil((double) (gmtMills - tziMills) / Time.DAY);
            } else {
                diffDate = (int) Math.floor((double) (gmtMills - tziMills) / Time.DAY);
            }/*from w  w w . ja v a2  s.c  om*/

            recurrenceCal.add(Calendar.DATE, diffDate);
        }
    }

    return recurrenceCal;
}

From source file:com.liferay.portlet.calendar.util.comparator.EventTimeComparator.java

License:Open Source License

protected Date getStartDate(CalEvent event, TimeZone timeZone, boolean repeating) {

    if (repeating) {

        // Normalize the start date of the event when at least one of the
        // events is a recurring event

        Calendar calendar = null;

        if (event.isTimeZoneSensitive()) {
            calendar = CalendarFactoryUtil.getCalendar(_timeZone);
        } else {/*  w ww.j a  v  a2 s  . c o m*/
            calendar = CalendarFactoryUtil.getCalendar();
        }

        calendar.setTime(event.getStartDate());

        calendar.set(Calendar.MONTH, Calendar.JANUARY);
        calendar.set(Calendar.DATE, 1);
        calendar.set(Calendar.YEAR, 1);

        return Time.getDate(calendar);
    }

    if (event.isTimeZoneSensitive()) {
        return Time.getDate(event.getStartDate(), timeZone);
    } else {
        return event.getStartDate();
    }
}