Example usage for org.joda.time DateTime withTimeAtStartOfDay

List of usage examples for org.joda.time DateTime withTimeAtStartOfDay

Introduction

In this page you can find the example usage for org.joda.time DateTime withTimeAtStartOfDay.

Prototype

public DateTime withTimeAtStartOfDay() 

Source Link

Document

Returns a copy of this datetime with the time set to the start of the day.

Usage

From source file:com.ro.ssc.app.client.utils.Utils.java

public static Map<Pair<DateTime, DateTime>, List<Pair<Event, Event>>> splitPerDay(LocalTime time,
        List<Event> events, DateTime iniDate, DateTime endDate) {
    Map<Pair<DateTime, DateTime>, List<Pair<Event, Event>>> result = new LinkedHashMap<>();
    List<Pair<Event, Event>> pairedEvents = new LinkedList<>();
    List<Pair<Event, Event>> perDayList = new LinkedList<>();
    List<Pair<Event, Event>> additionalList = new LinkedList<>();

    if (!events.isEmpty()) {
        pairedEvents = Seq.seq(events.iterator()).window()
                .filter(w -> w.lead().isPresent() && w.value().getAddr().contains("In"))
                .map(w -> new Pair<>(w.value(), w.lead().get())) // alternatively, use your new Pair() class
                .toList();// w w  w.j a  v  a  2s  .  c  o  m

        for (DateTime date = iniDate.withTimeAtStartOfDay(); date
                .isBefore(endDate.plusDays(1).withTimeAtStartOfDay()); date = date.plusDays(1)) {
            final DateTime dd = date;
            perDayList = pairedEvents.stream()
                    .filter(o -> o.getKey().getEventDateTime().withTimeAtStartOfDay().isEqual(dd))
                    .collect(Collectors.toList());
            perDayList.removeAll(additionalList);
            additionalList.clear();
            if (!perDayList.isEmpty()) {
                final DateTime evt = perDayList.get(perDayList.size() - 1).getValue().getEventDateTime();
                if (evt.isAfter(date.plusDays(1))) {
                    additionalList = pairedEvents.stream()
                            .filter(o -> o.getValue().getEventDateTime().isAfter(evt)
                                    && o.getValue().getEventDateTime()
                                            .isBefore(dd.plusDays(1).plusHours(time.getHour())
                                                    .plusMinutes(time.getMinute())))
                            .collect(Collectors.toList());

                    perDayList.addAll(additionalList);
                    if (!additionalList.isEmpty()) {
                        result.put(
                                new Pair(perDayList.get(0).getKey().getEventDateTime(), additionalList
                                        .get(additionalList.size() - 1).getValue().getEventDateTime()),
                                perDayList);
                    } else {
                        result.put(
                                new Pair(perDayList.get(0).getKey().getEventDateTime(),
                                        perDayList.get(perDayList.size() - 1).getValue().getEventDateTime()),
                                perDayList);

                    }
                } else {
                    result.put(
                            new Pair(perDayList.get(0).getKey().getEventDateTime(),
                                    perDayList.get(perDayList.size() - 1).getValue().getEventDateTime()),
                            perDayList);
                }
            }
        }
    }

    return result;
}

From source file:com.ro.ssc.app.client.utils.Utils.java

public static Map<DateTime, List<Event>> splitPerDayWrong(LocalTime time, List<Event> events, DateTime iniDate,
        DateTime endDate) {/*  w  w  w  . j a va  2  s.c  om*/
    Map<DateTime, List<Event>> result = new LinkedHashMap<>();

    List<Event> perDayList = new LinkedList<>();

    if (!events.isEmpty()) {
        for (DateTime date = iniDate.withTimeAtStartOfDay(); date
                .isBefore(endDate.plusDays(1).withTimeAtStartOfDay()); date = date.plusDays(1)) {
            final DateTime dd = date;
            perDayList = events.stream().filter(o -> o.getEventDateTime().withTimeAtStartOfDay().isEqual(dd))
                    .collect(Collectors.toList());
            result.put(dd, perDayList);
        }
    }

    return result;
}

From source file:com.sonicle.webtop.calendar.bol.ORecurrence.java

License:Open Source License

public void set(Recur recur, LocalDate recurStartDate, DateTime eventStartDate, DateTime eventEndDate,
        DateTimeZone eventTimezone) {/*from w  w  w .j  a  v  a 2s  .  c o  m*/
    DateTime newStart = (recurStartDate != null) ? recurStartDate.toDateTimeAtStartOfDay(eventTimezone)
            : eventStartDate;
    setStartDate(newStart);
    if (ICal4jUtils.recurHasCount(recur)) {
        DateTime untilDate = ICal4jUtils.calculateRecurrenceEnd(recur, newStart, eventTimezone);
        setUntilDate(untilDate.withTimeAtStartOfDay().plusDays(1));
    } else if (ICal4jUtils.recurHasUntilDate(recur)) {
        DateTime untilDate = ICal4jUtils.toJodaDateTime(recur.getUntil(), DateTimeZone.UTC)
                .withZone(eventTimezone);
        setUntilDate(untilDate.withTimeAtStartOfDay().plusDays(1));
    } else {
        setUntilDate(ICal4jUtils.ifiniteDate(eventTimezone));
    }
    setRule(recur.toString());
}

From source file:com.sonicle.webtop.calendar.bol.ORecurrence.java

License:Open Source License

@Deprecated
public RRule __applyEndUntil(DateTime untilDate, DateTimeZone etz, boolean setRule) {
    RRule rr = null;//from  w  ww. ja v a 2  s . c  o m
    setRepeat(null);
    setPermanent(false);
    setUntilDate(untilDate.withTimeAtStartOfDay());
    rr = buildRRule(etz);
    if (setRule)
        setRule(rr.getValue());
    return rr;
}

From source file:com.sonicle.webtop.calendar.CalendarManager.java

License:Open Source License

@Override
public List<SchedEventInstance> listUpcomingEventInstances(Collection<Integer> calendarIds, DateTime now,
        int days, Condition<EventQuery> conditionPredicate, DateTimeZone targetTimezone) throws WTException {
    if (days > 15)
        days = 15;//from  w  w w.j a v  a2 s . c om
    DateTimeRange range = new DateTimeRange(
            now.withSecondOfMinute(0).withMillisOfSecond(0).withZone(targetTimezone),
            now.withTimeAtStartOfDay().plusDays(days));
    return listEventInstances(calendarIds, range, conditionPredicate, targetTimezone, true);
}

From source file:com.sonicle.webtop.calendar.CalendarManager.java

License:Open Source License

public List<BaseReminder> getRemindersToBeNotified(DateTime now) {
    EventDAO evtDao = EventDAO.getInstance();
    Connection con = null;//  w  ww .ja va  2  s  .  c  o  m

    ensureSysAdmin();
    ArrayList<VExpEventInstance> evtInstCandidates = new ArrayList<>();

    logger.trace("Analyzing event instances...");
    try {
        final DateTime from = now.withTimeAtStartOfDay();
        con = WT.getConnection(SERVICE_ID, false);

        for (VExpEventInstance evtInst : doEventGetExpiredForUpdate(con, from, from.plusDays(7 * 2 + 1))) {
            final DateTime remindOn = evtInst.getStartDate().withZone(DateTimeZone.UTC)
                    .minusMinutes(evtInst.getReminder());
            if (now.compareTo(remindOn) < 0)
                continue;
            // If instance should have been reminded in past...
            if (evtInst.getRemindedOn() != null) {
                // Only recurring event instances should pass here, classic events are already excluded by the db query
                if (evtInst.getRecurrenceId() == null)
                    throw new WTException("This should never happen (famous last words)");
                final DateTime lastRemindedOn = evtInst.getRemindedOn().withZone(DateTimeZone.UTC);
                if (remindOn.compareTo(lastRemindedOn) <= 0)
                    continue;
                // If instance should have been reminded after last remind...
            }

            int ret = evtDao.updateRemindedOn(con, evtInst.getEventId(), now);
            evtInstCandidates.add(evtInst);
        }
        DbUtils.commitQuietly(con);

    } catch (SQLException | DAOException | WTException ex) {
        DbUtils.rollbackQuietly(con);
        logger.error("Error collecting instances", ex);
    } finally {
        DbUtils.closeQuietly(con);
    }

    logger.debug("Found {} instances to be reminded", evtInstCandidates.size());

    ArrayList<BaseReminder> alerts = new ArrayList<>();
    HashMap<UserProfileId, Boolean> byEmailCache = new HashMap<>();

    logger.trace("Preparing alerts...");
    for (VExpEventInstance evtInst : evtInstCandidates) {
        logger.debug("Working on instance [{}, {}]", evtInst.getEventId(), evtInst.getStartDate());
        if (!byEmailCache.containsKey(evtInst.getCalendarProfileId())) {
            CalendarUserSettings cus = new CalendarUserSettings(SERVICE_ID, evtInst.getCalendarProfileId());
            boolean bool = cus.getEventReminderDelivery()
                    .equals(CalendarSettings.EVENT_REMINDER_DELIVERY_EMAIL);
            byEmailCache.put(evtInst.getCalendarProfileId(), bool);
        }

        if (byEmailCache.get(evtInst.getCalendarProfileId())) {
            UserProfile.Data ud = WT.getUserData(evtInst.getCalendarProfileId());
            CoreUserSettings cus = new CoreUserSettings(evtInst.getCalendarProfileId());

            try {
                EventInstance eventInstance = getEventInstance(evtInst.getKey());
                alerts.add(createEventReminderAlertEmail(ud.getLocale(), cus.getShortDateFormat(),
                        cus.getShortTimeFormat(), ud.getPersonalEmailAddress(), evtInst.getCalendarProfileId(),
                        eventInstance));
            } catch (WTException ex) {
                logger.error("Error preparing email", ex);
            }
        } else {
            alerts.add(createEventReminderAlertWeb(evtInst));
        }
    }

    //FIXME: remove this when zpush is using manager methods
    sendInvitationForZPushEvents();
    // ----------------------------

    return alerts;
}

From source file:com.sonicle.webtop.calendar.Service.java

License:Open Source License

public void processPrintScheduler(HttpServletRequest request, HttpServletResponse response) {
    ByteArrayOutputStream baos = null;
    UserProfile up = getEnv().getProfile();

    try {// w ww  .  j  a  v  a 2s  . c  om
        String filename = ServletUtils.getStringParameter(request, "filename", "print");
        String view = ServletUtils.getStringParameter(request, "view", "w5");
        String from = ServletUtils.getStringParameter(request, "startDate", true);

        DateTime startDate = DateTimeUtils.parseYmdHmsWithZone(from, "00:00:00", up.getTimeZone());

        ReportConfig.Builder builder = reportConfigBuilder();
        DateTime fromDate = null, toDate = null;
        AbstractAgenda rpt = null;
        if (view.equals("d")) {
            fromDate = startDate.withTimeAtStartOfDay();
            toDate = startDate.plusDays(1).withTimeAtStartOfDay();
            rpt = new RptAgendaSummary(builder.build(), 1);

        } else if (view.equals("w5")) {
            fromDate = startDate.withTimeAtStartOfDay();
            toDate = startDate.plusDays(5).withTimeAtStartOfDay();
            rpt = new RptAgendaWeek5(builder.build());

        } else if (view.equals("w")) {
            fromDate = startDate.withTimeAtStartOfDay();
            toDate = startDate.plusDays(7).withTimeAtStartOfDay();
            rpt = new RptAgendaWeek7(builder.build());

        } else if (view.equals("dw")) {
            fromDate = startDate.withTimeAtStartOfDay();
            toDate = startDate.plusDays(14).withTimeAtStartOfDay();
            rpt = new RptAgendaSummary(builder.build(), 14);

        } else if (view.equals("m")) {
            if (startDate.getDayOfMonth() == 1) {
                fromDate = startDate.withTimeAtStartOfDay();
            } else {
                fromDate = startDate.plusMonths(1).withDayOfMonth(1).withTimeAtStartOfDay();
            }
            int days = fromDate.dayOfMonth().getMaximumValue();
            toDate = fromDate.plusMonths(1).withDayOfMonth(1).withTimeAtStartOfDay();
            rpt = new RptAgendaSummary(builder.build(), days);

        } else {
            throw new WTException("View not supported [{0}]", view);
        }

        Set<Integer> activeCalIds = getActiveFolderIds();
        Map<Integer, Calendar> calendars = folders.entrySet().stream()
                .filter(map -> activeCalIds.contains(map.getKey()))
                .collect(Collectors.toMap(map -> map.getKey(), map -> map.getValue().getCalendar()));

        List<SchedEventInstance> instances = manager.listEventInstances(activeCalIds,
                new DateTimeRange(fromDate, toDate), up.getTimeZone(), true);
        rpt.setDataSource(manager, fromDate, toDate, up.getTimeZone(), calendars, instances);

        baos = new ByteArrayOutputStream();
        WT.generateReportToStream(rpt, AbstractReport.OutputType.PDF, baos);
        ServletUtils.setContentDispositionHeader(response, "inline", filename + ".pdf");
        ServletUtils.writeContent(response, baos, "application/pdf");

    } catch (Exception ex) {
        logger.error("Error in PrintScheduler", ex);
        ServletUtils.writeErrorHandlingJs(response, ex.getMessage());
    } finally {
        IOUtils.closeQuietly(baos);
    }
}

From source file:com.weebly.opus1269.copyeverywhere.model.ClipContentProvider.java

License:Apache License

/**
 * Delete rows older than the storage duration
 *
 * @return Number of rows deleted/*  w  ww  .ja  v a  2 s. c  om*/
 */
@SuppressWarnings("CallToStringEquals")
public static int deleteOldItems() {
    final String value = Prefs.getDuration();
    if (value.equals(Prefs.DEFAULT_DURATION)) {
        return 0;
    }

    final Context context = App.getContext();
    DateTime today = DateTime.now();
    today = today.withTimeAtStartOfDay();
    DateTime deleteDate = today;
    switch (value) {
    case "day":
        deleteDate = deleteDate.minusDays(1);
        break;
    case "week":
        deleteDate = deleteDate.minusWeeks(1);
        break;
    case "month":
        deleteDate = deleteDate.minusMonths(1);
        break;
    case "year":
        deleteDate = deleteDate.minusYears(1);
        break;
    default:
        return 0;
    }

    final long deleteTime = deleteDate.getMillis();

    // Select all non-favorites older than the calculated time
    final String selection = "(" + ClipContract.Clip.COL_FAV + " == 0 " + ")" + " AND ("
            + ClipContract.Clip.COL_DATE + " < " + deleteTime + ")";

    return context.getContentResolver().delete(ClipContract.Clip.CONTENT_URI, selection, null);
}

From source file:common.CommonFunction.java

public static boolean isGreaterThanDate(Date date1, Date date2) {
    DateTime d1 = new DateTime(date1);
    DateTime d2 = new DateTime(date2);
    return d1.withTimeAtStartOfDay().isAfter(d2.withTimeAtStartOfDay());
}

From source file:cron.DayOfWeekField.java

License:Open Source License

public boolean matches(DateTime time) {
    if (unspecified)
        return true;
    final int dayOfWeek = time.getDayOfWeek();
    int number = number(dayOfWeek);
    if (hasLast) {
        return last.contains(number) && time.getMonthOfYear() != time.plusWeeks(1).getMonthOfYear();
    } else if (hasNth) {
        for (int possibleMatch : nth.get(number)) {
            DateTime midnight = time.withTimeAtStartOfDay();
            DateTime first = midnight.withDayOfMonth(1).withDayOfWeek(dayOfWeek);
            if (first.getMonthOfYear() != time.getMonthOfYear())
                first = first.plusWeeks(1);
            DateTime tomorrow = midnight.plusDays(1);
            int weekNumber = 1 + (int) ((tomorrow.getMillis() - first.getMillis()) / MILLISECONDS_PER_WEEK);
            if (possibleMatch == weekNumber)
                return true;
        }/*from w w w .j  a  v a2  s .  c  om*/
    }
    return contains(number);
}