List of usage examples for com.liferay.portal.kernel.util Time getDate
public static Date getDate(TimeZone tz)
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(); } }