Example usage for org.joda.time DateTime dayOfYear

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

Introduction

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

Prototype

public Property dayOfYear() 

Source Link

Document

Get the day of year property which provides access to advanced functionality.

Usage

From source file:org.apache.druid.query.expression.TimestampExtractExprMacro.java

License:Apache License

@Override
public Expr apply(final List<Expr> args) {
    if (args.size() < 2 || args.size() > 3) {
        throw new IAE("Function[%s] must have 2 to 3 arguments", name());
    }// w ww  .  j  a v a  2 s .  c o m

    if (!args.get(1).isLiteral() || args.get(1).getLiteralValue() == null) {
        throw new IAE("Function[%s] unit arg must be literal", name());
    }

    if (args.size() > 2 && !args.get(2).isLiteral()) {
        throw new IAE("Function[%s] timezone arg must be literal", name());
    }

    final Expr arg = args.get(0);
    final Unit unit = Unit.valueOf(StringUtils.toUpperCase((String) args.get(1).getLiteralValue()));
    final DateTimeZone timeZone;

    if (args.size() > 2) {
        timeZone = ExprUtils.toTimeZone(args.get(2));
    } else {
        timeZone = DateTimeZone.UTC;
    }

    final ISOChronology chronology = ISOChronology.getInstance(timeZone);

    class TimestampExtractExpr extends ExprMacroTable.BaseScalarUnivariateMacroFunctionExpr {
        private TimestampExtractExpr(Expr arg) {
            super(arg);
        }

        @Nonnull
        @Override
        public ExprEval eval(final ObjectBinding bindings) {
            Object val = arg.eval(bindings).value();
            if (val == null) {
                // Return null if the argument if null.
                return ExprEval.of(null);
            }
            final DateTime dateTime = new DateTime(val, chronology);
            long epoch = dateTime.getMillis() / 1000;

            switch (unit) {
            case EPOCH:
                return ExprEval.of(epoch);
            case MICROSECOND:
                return ExprEval.of(epoch / 1000);
            case MILLISECOND:
                return ExprEval.of(dateTime.millisOfSecond().get());
            case SECOND:
                return ExprEval.of(dateTime.secondOfMinute().get());
            case MINUTE:
                return ExprEval.of(dateTime.minuteOfHour().get());
            case HOUR:
                return ExprEval.of(dateTime.hourOfDay().get());
            case DAY:
                return ExprEval.of(dateTime.dayOfMonth().get());
            case DOW:
                return ExprEval.of(dateTime.dayOfWeek().get());
            case ISODOW:
                return ExprEval.of(dateTime.dayOfWeek().get());
            case DOY:
                return ExprEval.of(dateTime.dayOfYear().get());
            case WEEK:
                return ExprEval.of(dateTime.weekOfWeekyear().get());
            case MONTH:
                return ExprEval.of(dateTime.monthOfYear().get());
            case QUARTER:
                return ExprEval.of((dateTime.monthOfYear().get() - 1) / 3 + 1);
            case YEAR:
                return ExprEval.of(dateTime.year().get());
            case ISOYEAR:
                return ExprEval.of(dateTime.year().get());
            case DECADE:
                // The year field divided by 10, See https://www.postgresql.org/docs/10/functions-datetime.html
                return ExprEval.of(Math.floor(dateTime.year().get() / 10));
            case CENTURY:
                return ExprEval.of(dateTime.centuryOfEra().get() + 1);
            case MILLENNIUM:
                // Years in the 1900s are in the second millennium. The third millennium started January 1, 2001.
                // See https://www.postgresql.org/docs/10/functions-datetime.html
                return ExprEval.of(Math.round(Math.ceil(dateTime.year().get() / 1000)));
            default:
                throw new ISE("Unhandled unit[%s]", unit);
            }
        }

        @Override
        public Expr visit(Shuttle shuttle) {
            Expr newArg = arg.visit(shuttle);
            return shuttle.visit(new TimestampExtractExpr(newArg));
        }
    }

    return new TimestampExtractExpr(arg);
}

From source file:org.jpos.qi.components.DateRange.java

License:Open Source License

private static Map<String, Date> createStartDateMap() {
    QI app = (QI) UI.getCurrent();//  ww  w  .  j av  a  2s .com
    DateTime dt = DateTime.now().millisOfDay().withMinimumValue();
    Map<String, Date> map = new HashMap<>();
    map.put(LAST_HOUR, DateTime.now().minusHours(1).toDate());
    map.put(TODAY, dt.toDate());
    map.put(YESTERDAY, dt.minusDays(1).toDate());
    map.put(THIS_WEEK, dt.dayOfWeek().withMinimumValue().toDate());
    map.put(LAST_WEEK, dt.dayOfWeek().withMinimumValue().minusWeeks(1).toDate());
    map.put(THIS_MONTH, dt.dayOfMonth().withMinimumValue().toDate());
    map.put(LAST_MONTH, dt.dayOfMonth().withMinimumValue().minusMonths(1).toDate());
    map.put(THIS_YEAR, dt.dayOfYear().withMinimumValue().toDate());
    map.put(ALL_TIME, null);
    return map;
}

From source file:org.jpos.qi.components.DateRange.java

License:Open Source License

private static Map<String, Date> createEndDateMap() {
    QI app = (QI) UI.getCurrent();/* ww w.j av  a2  s.  c o m*/
    DateTime dt = DateTime.now().millisOfDay().withMaximumValue();
    Map<String, Date> map = new HashMap<>();
    map.put(LAST_HOUR, DateTime.now().toDate());
    map.put(TODAY, dt.toDate());
    map.put(YESTERDAY, dt.minusDays(1).toDate());
    map.put(THIS_WEEK, dt.dayOfWeek().withMaximumValue().toDate());
    map.put(LAST_WEEK, dt.dayOfWeek().withMaximumValue().minusWeeks(1).toDate());
    map.put(THIS_MONTH, dt.dayOfMonth().withMaximumValue().toDate());
    map.put(LAST_MONTH, dt.dayOfMonth().withMaximumValue().minusMonths(1).toDate());
    map.put(THIS_YEAR, dt.dayOfYear().withMaximumValue().toDate());
    map.put(ALL_TIME, null);
    return map;
}

From source file:org.kuali.kpme.tklm.leave.accrual.service.AccrualServiceImpl.java

License:Educational Community License

@Override
public DateTime getPreviousAccrualIntervalDate(String earnInterval, DateTime aDate) {
    DateTime previousAccrualIntervalDate = null;

    if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.DAILY)) {
        previousAccrualIntervalDate = aDate.minusDays(1);
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.WEEKLY)) {
        previousAccrualIntervalDate = aDate.minusWeeks(1).withDayOfWeek(DateTimeConstants.SATURDAY);
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.SEMI_MONTHLY)) {
        previousAccrualIntervalDate = aDate.minusDays(15);
        if (previousAccrualIntervalDate.getDayOfMonth() <= 15) {
            previousAccrualIntervalDate = previousAccrualIntervalDate.withDayOfMonth(15);
        } else {/*w ww.  j  ava2 s . c  om*/
            previousAccrualIntervalDate = previousAccrualIntervalDate
                    .withDayOfMonth(previousAccrualIntervalDate.dayOfMonth().getMaximumValue());
        }
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.MONTHLY)) {
        previousAccrualIntervalDate = aDate.minusMonths(1);
        previousAccrualIntervalDate = previousAccrualIntervalDate
                .withDayOfMonth(previousAccrualIntervalDate.dayOfMonth().getMaximumValue());
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.YEARLY)) {
        previousAccrualIntervalDate = aDate.minusYears(1);
        previousAccrualIntervalDate = previousAccrualIntervalDate
                .withDayOfYear(previousAccrualIntervalDate.dayOfYear().getMaximumValue());
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.NO_ACCRUAL)) {
        previousAccrualIntervalDate = aDate;
    }

    return previousAccrualIntervalDate;
}

From source file:org.kuali.kpme.tklm.leave.accrual.service.AccrualServiceImpl.java

License:Educational Community License

@Override
public DateTime getNextAccrualIntervalDate(String earnInterval, DateTime aDate) {
    DateTime nextAccrualIntervalDate = null;

    if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.DAILY)) {
        nextAccrualIntervalDate = aDate;
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.WEEKLY)) {
        if (aDate.getDayOfWeek() != DateTimeConstants.SATURDAY) {
            nextAccrualIntervalDate = aDate.withDayOfWeek(DateTimeConstants.SATURDAY);
        } else {/*from w w  w  . j a v  a2  s .  co m*/
            nextAccrualIntervalDate = aDate.withWeekOfWeekyear(1);
        }
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.SEMI_MONTHLY)) {
        if (aDate.getDayOfMonth() <= 15) {
            nextAccrualIntervalDate = aDate.withDayOfMonth(15);
        } else {
            nextAccrualIntervalDate = aDate.withDayOfMonth(aDate.dayOfMonth().getMaximumValue());
        }
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.MONTHLY)) {
        nextAccrualIntervalDate = aDate.withDayOfMonth(aDate.dayOfMonth().getMaximumValue());
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.YEARLY)) {
        nextAccrualIntervalDate = aDate.withDayOfYear(aDate.dayOfYear().getMaximumValue());
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.NO_ACCRUAL)) {
        nextAccrualIntervalDate = aDate;
    }

    return nextAccrualIntervalDate;
}

From source file:org.kuali.kpme.tklm.leave.accrual.service.AccrualServiceImpl.java

License:Educational Community License

@Override
public int getWorkDaysInAccrualInterval(String earnInterval, DateTime aDate) {
    if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.DAILY)) {
        return 1;
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.WEEKLY)) {
        return 5;
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.SEMI_MONTHLY)) {
        if (aDate.getDayOfMonth() <= 15) {
            return TKUtils.getWorkDays(aDate.withDayOfMonth(1), aDate.withDayOfMonth(15));
        } else {//ww w.  j av  a  2 s.  com
            return TKUtils.getWorkDays(aDate.withDayOfMonth(16),
                    aDate.withDayOfMonth(aDate.dayOfMonth().getMaximumValue()));
        }
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.MONTHLY)) {
        return TKUtils.getWorkDays(aDate.withDayOfMonth(1),
                aDate.withDayOfMonth(aDate.dayOfMonth().getMaximumValue()));
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.YEARLY)) {
        return TKUtils.getWorkDays(aDate.withDayOfYear(1),
                aDate.withDayOfYear(aDate.dayOfYear().getMaximumValue()));
    } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.NO_ACCRUAL)) {
        return 0;
    }
    return 0;
}

From source file:org.projectforge.business.teamcal.servlet.CalendarAboServlet.java

License:Open Source License

/**
 * builds the list of events/*from w  ww. ja v a 2 s  .  c  o m*/
 *
 * @return
 */
private List<VEvent> getEvents(final Map<String, String> params, PFUserDO timesheetUser) {
    final PFUserDO loggedInUser = ThreadLocalUserContext.getUser();
    if (loggedInUser == null) {
        throw new AccessException("No logged-in-user found!");
    }
    final List<VEvent> events = new ArrayList<VEvent>();
    final TimeZone timezone = ICal4JUtils.getUserTimeZone();
    final java.util.Calendar cal = java.util.Calendar.getInstance(ThreadLocalUserContext.getTimeZone());

    boolean eventsExist = false;
    final List<VEvent> list = teamCalCalendarFeedHook.getEvents(params, timezone);
    if (list != null && list.size() > 0) {
        events.addAll(list);
        eventsExist = true;
    }

    if (timesheetUser != null) {
        if (loggedInUser.getId().equals(timesheetUser.getId()) == false && isOtherUsersAllowed() == false) {
            // Only project managers, controllers and administrative staff is allowed to subscribe time-sheets of other users.
            log.warn("User tried to get time-sheets of other user: " + timesheetUser);
            timesheetUser = loggedInUser;
        }
        // initializes timesheet filter
        final TimesheetFilter filter = new TimesheetFilter();
        filter.setUserId(timesheetUser.getId());
        filter.setDeleted(false);
        filter.setStopTime(cal.getTime());
        // calculates the offset of the calendar
        final int offset = cal.get(java.util.Calendar.MONTH) - CalendarFeedConst.PERIOD_IN_MONTHS;
        if (offset < 0) {
            setCalDate(cal, cal.get(java.util.Calendar.YEAR) - 1, 12 + offset);
        } else {
            setCalDate(cal, cal.get(java.util.Calendar.YEAR), offset);
        }
        filter.setStartTime(cal.getTime());

        final List<TimesheetDO> timesheetList = timesheetDao.getList(filter);

        // iterate over all timesheets and adds each event to the calendar
        for (final TimesheetDO timesheet : timesheetList) {

            final String uid = TeamCalConfig.get().createTimesheetUid(timesheet.getId());
            String summary;
            if (eventsExist == true) {
                summary = CalendarHelper.getTitle(timesheet) + " (ts)";
            } else {
                summary = CalendarHelper.getTitle(timesheet);
            }
            final VEvent vEvent = ICal4JUtils.createVEvent(timesheet.getStartTime(), timesheet.getStopTime(),
                    uid, summary);
            if (StringUtils.isNotBlank(timesheet.getDescription()) == true) {
                vEvent.getProperties().add(new Description(timesheet.getDescription()));
            }
            if (StringUtils.isNotBlank(timesheet.getLocation()) == true) {
                vEvent.getProperties().add(new Location(timesheet.getLocation()));
            }
            events.add(vEvent);
        }
    }
    final String holidays = params.get(CalendarFeedConst.PARAM_NAME_HOLIDAYS);
    if ("true".equals(holidays) == true) {
        DateTime holidaysFrom = new DateTime(ThreadLocalUserContext.getDateTimeZone());
        holidaysFrom = holidaysFrom.dayOfYear().withMinimumValue().millisOfDay().withMinimumValue()
                .minusYears(2);
        final DateTime holidayTo = holidaysFrom.plusYears(6);
        events.addAll(teamCalService.getConfiguredHolidaysAsVEvent(holidaysFrom, holidayTo));
    }
    final String weeksOfYear = params.get(CalendarFeedConst.PARAM_NAME_WEEK_OF_YEARS);
    if ("true".equals(weeksOfYear) == true) {
        final DayHolder from = new DayHolder();
        from.setBeginOfYear().add(java.util.Calendar.YEAR, -2).setBeginOfWeek();
        final DayHolder to = new DayHolder(from);
        to.add(java.util.Calendar.YEAR, 6);
        final DayHolder current = new DayHolder(from);
        int paranoiaCounter = 0;
        do {
            final VEvent vEvent = ICal4JUtils.createVEvent(current.getDate(), current.getDate(),
                    "pf-weekOfYear" + current.getYear() + "-" + paranoiaCounter,
                    ThreadLocalUserContext.getLocalizedString("calendar.weekOfYearShortLabel") + " "
                            + current.getWeekOfYear(),
                    true);
            events.add(vEvent);
            current.add(java.util.Calendar.WEEK_OF_YEAR, 1);
            if (++paranoiaCounter > 500) {
                log.warn(
                        "Dear developer, please have a look here, paranoiaCounter exceeded! Aborting calculation of weeks of year.");
            }
        } while (current.before(to) == true);
    }
    // Integer hrPlanningUserId = NumberHelper.parseInteger(params.get(PARAM_NAME_HR_PLANNING));
    // if (hrPlanningUserId != null) {
    // if (loggedInUser.getId().equals(hrPlanningUserId) == false && isOtherUsersAllowed() == false) {
    // // Only project managers, controllers and administrative staff is allowed to subscribe time-sheets of other users.
    // log.warn("User tried to get time-sheets of other user: " + timesheetUser);
    // hrPlanningUserId = loggedInUser.getId();
    // }
    // final HRPlanningDao hrPlanningDao = Registry.instance().getDao(HRPlanningDao.class);
    // final HRPlanningEventsProvider hrPlanningEventsProvider = new HRPlanningEventsProvider(new CalendarFilter().setShowPlanning(true)
    // .setTimesheetUserId(hrPlanningUserId), hrPlanningDao);
    // DateTime planningFrom = new DateTime(ThreadLocalUserContext.getDateTimeZone());
    // planningFrom = planningFrom.dayOfYear().withMinimumValue().millisOfDay().withMinimumValue().minusYears(1);
    // final DateTime planningTo = planningFrom.plusYears(4);
    // for (final Event event : hrPlanningEventsProvider.getEvents(planningFrom, planningTo)) {
    // final Date fromDate = event.getStart().toDate();
    // final Date toDate = event.getEnd() != null ? event.getEnd().toDate() : fromDate;
    // final VEvent vEvent = ICal4JUtils.createVEvent(fromDate, toDate, "pf-hr-planning" + event.getId(), event.getTitle(), true);
    // events.add(vEvent);
    // }
    // }
    return events;
}

From source file:org.projectforge.web.calendar.CalendarFeed.java

License:Open Source License

/**
 * builds the list of events/*  w  ww.  ja  v a2 s.c om*/
 * 
 * @return
 */
private List<VEvent> getEvents(final Map<String, String> params, PFUserDO timesheetUser) {
    final PFUserDO loggedInUser = PFUserContext.getUser();
    if (loggedInUser == null) {
        throw new AccessException("No logged-in-user found!");
    }
    final List<VEvent> events = new ArrayList<VEvent>();
    final TimeZone timezone = ICal4JUtils.getUserTimeZone();
    final java.util.Calendar cal = java.util.Calendar.getInstance(PFUserContext.getTimeZone());

    boolean eventsExist = false;
    for (final CalendarFeedHook hook : feedHooks) {
        final List<VEvent> list = hook.getEvents(params, timezone);
        if (list != null && list.size() > 0) {
            events.addAll(list);
            eventsExist = true;
        }
    }

    if (timesheetUser != null) {
        if (loggedInUser.getId().equals(timesheetUser.getId()) == false && isOtherUsersAllowed() == false) {
            // Only project managers, controllers and administrative staff is allowed to subscribe time-sheets of other users.
            log.warn("User tried to get time-sheets of other user: " + timesheetUser);
            timesheetUser = loggedInUser;
        }
        // initializes timesheet filter
        final TimesheetFilter filter = new TimesheetFilter();
        filter.setUserId(timesheetUser.getId());
        filter.setDeleted(false);
        filter.setStopTime(cal.getTime());
        // calculates the offset of the calendar
        final int offset = cal.get(java.util.Calendar.MONTH) - PERIOD_IN_MONTHS;
        if (offset < 0) {
            setCalDate(cal, cal.get(java.util.Calendar.YEAR) - 1, 12 + offset);
        } else {
            setCalDate(cal, cal.get(java.util.Calendar.YEAR), offset);
        }
        filter.setStartTime(cal.getTime());

        final TimesheetDao timesheetDao = Registry.instance().getDao(TimesheetDao.class);
        final List<TimesheetDO> timesheetList = timesheetDao.getList(filter);

        // iterate over all timesheets and adds each event to the calendar
        for (final TimesheetDO timesheet : timesheetList) {
            final String uid = TeamCalConfig.get().createTimesheetUid(timesheet.getId());
            String summary;
            if (eventsExist == true) {
                summary = TimesheetEventsProvider.getTitle(timesheet) + " (ts)";
            } else {
                summary = TimesheetEventsProvider.getTitle(timesheet);
            }
            final VEvent vEvent = ICal4JUtils.createVEvent(timesheet.getStartTime(), timesheet.getStopTime(),
                    uid, summary);
            if (StringUtils.isNotBlank(timesheet.getDescription()) == true) {
                vEvent.getProperties().add(new Description(timesheet.getDescription()));
            }
            if (StringUtils.isNotBlank(timesheet.getLocation()) == true) {
                vEvent.getProperties().add(new Location(timesheet.getLocation()));
            }
            events.add(vEvent);
        }
    }
    final String holidays = params.get(PARAM_NAME_HOLIDAYS);
    if ("true".equals(holidays) == true) {
        final HolidayEventsProvider holidaysEventsProvider = new HolidayEventsProvider();
        DateTime holidaysFrom = new DateTime(PFUserContext.getDateTimeZone());
        holidaysFrom = holidaysFrom.dayOfYear().withMinimumValue().millisOfDay().withMinimumValue()
                .minusYears(2);
        final DateTime holidayTo = holidaysFrom.plusYears(6);
        for (final Event event : holidaysEventsProvider.getEvents(holidaysFrom, holidayTo)) {
            final Date fromDate = event.getStart().toDate();
            final Date toDate = event.getEnd() != null ? event.getEnd().toDate() : fromDate;
            final VEvent vEvent = ICal4JUtils.createVEvent(fromDate, toDate, "pf-holiday" + event.getId(),
                    event.getTitle(), true);
            events.add(vEvent);
        }
    }
    final String weeksOfYear = params.get(PARAM_NAME_WEEK_OF_YEARS);
    if ("true".equals(weeksOfYear) == true) {
        final DayHolder from = new DayHolder();
        from.setBeginOfYear().add(java.util.Calendar.YEAR, -2).setBeginOfWeek();
        final DayHolder to = new DayHolder(from);
        to.add(java.util.Calendar.YEAR, 6);
        final DayHolder current = new DayHolder(from);
        int paranoiaCounter = 0;
        do {
            final VEvent vEvent = ICal4JUtils.createVEvent(current.getDate(), current.getDate(),
                    "pf-weekOfYear" + current.getYear() + "-" + paranoiaCounter,
                    PFUserContext.getLocalizedString("calendar.weekOfYearShortLabel") + " "
                            + current.getWeekOfYear(),
                    true);
            events.add(vEvent);
            current.add(java.util.Calendar.WEEK_OF_YEAR, 1);
            if (++paranoiaCounter > 500) {
                log.warn(
                        "Dear developer, please have a look here, paranoiaCounter exceeded! Aborting calculation of weeks of year.");
            }
        } while (current.before(to) == true);
    }
    // Integer hrPlanningUserId = NumberHelper.parseInteger(params.get(PARAM_NAME_HR_PLANNING));
    // if (hrPlanningUserId != null) {
    // if (loggedInUser.getId().equals(hrPlanningUserId) == false && isOtherUsersAllowed() == false) {
    // // Only project managers, controllers and administrative staff is allowed to subscribe time-sheets of other users.
    // log.warn("User tried to get time-sheets of other user: " + timesheetUser);
    // hrPlanningUserId = loggedInUser.getId();
    // }
    // final HRPlanningDao hrPlanningDao = Registry.instance().getDao(HRPlanningDao.class);
    // final HRPlanningEventsProvider hrPlanningEventsProvider = new HRPlanningEventsProvider(new CalendarFilter().setShowPlanning(true)
    // .setTimesheetUserId(hrPlanningUserId), hrPlanningDao);
    // DateTime planningFrom = new DateTime(PFUserContext.getDateTimeZone());
    // planningFrom = planningFrom.dayOfYear().withMinimumValue().millisOfDay().withMinimumValue().minusYears(1);
    // final DateTime planningTo = planningFrom.plusYears(4);
    // for (final Event event : hrPlanningEventsProvider.getEvents(planningFrom, planningTo)) {
    // final Date fromDate = event.getStart().toDate();
    // final Date toDate = event.getEnd() != null ? event.getEnd().toDate() : fromDate;
    // final VEvent vEvent = ICal4JUtils.createVEvent(fromDate, toDate, "pf-hr-planning" + event.getId(), event.getTitle(), true);
    // events.add(vEvent);
    // }
    // }
    return events;
}

From source file:playground.johannes.gsv.synPop.invermo.SplitPlanTask.java

License:Open Source License

private void splitPlan(ProxyPlan plan, List<ProxyPlan> newPlans) {
    ProxyPlan subPlan = new ProxyPlan();

    DateTime prev = getDate(plan.getLegs().get(0));
    if (prev == null) {
        logger.warn("Cannot split plan. Neither start nor end time specified.");
        return;/*www .  ja v a  2  s .  com*/
    }

    for (int i = 0; i < plan.getLegs().size(); i++) {
        ProxyObject leg = plan.getLegs().get(i);
        ProxyObject act = plan.getActivities().get(i);

        DateTime current = getDate(leg);
        if (current == null) {
            logger.warn("Cannot split plan. Neither start nor end time specified.");
            return;
        }

        int currentDays = current.dayOfYear().get() + (365 * current.year().get());
        int prevDays = prev.dayOfYear().get() + (365 * prev.year().get());
        int nights = currentDays - prevDays;

        //         if (current.dayOfYear().get() != prev.dayOfYear().get()) {
        if (nights > 0) {
            subPlan.setAttribute(MIDKeys.JOURNEY_DAYS, String.valueOf(nights + 1));

            subPlan.addActivity(act.clone());
            newPlans.add(subPlan);

            subPlan = new ProxyPlan();
            subPlan.addActivity(act.clone());
            subPlan.addLeg(leg.clone());
        } else {
            subPlan.setAttribute(MIDKeys.JOURNEY_DAYS, String.valueOf(nights + 1));

            subPlan.addActivity(act.clone());
            subPlan.addLeg(leg.clone());
        }

        prev = current;
    }

    int size = plan.getActivities().size();
    subPlan.addActivity(plan.getActivities().get(size - 1).clone());
    newPlans.add(subPlan);
}