Example usage for org.joda.time DateTime plusWeeks

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

Introduction

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

Prototype

public DateTime plusWeeks(int weeks) 

Source Link

Document

Returns a copy of this datetime plus the specified number of weeks.

Usage

From source file:org.efaps.esjp.common.datetime.JodaTimeUtils.java

License:Apache License

/**
 * @param _parameter parameter as passed by the eFaps API
 * @return new DateTime//from w w w .j a  va 2  s  .  c om
 * @throws EFapsException on error
 */
public static DateTime getDefaultvalue(final Parameter _parameter) throws EFapsException {
    final JodaTimeUtils utils = new JodaTimeUtils();
    DateTime ret = new DateTime().withTimeAtStartOfDay()
            .withChronology(Context.getThreadContext().getChronology());
    for (final DateDefaultValues value : DateDefaultValues.values()) {
        if (utils.containsProperty(_parameter, value.toString())) {
            final String strValue = utils.getProperty(_parameter, value.toString());
            switch (value) {
            case TODAY:
                ret = new DateTime().withChronology(Context.getThreadContext().getChronology());
                break;
            case WEEKS:
                ret = ret.plusWeeks(Integer.valueOf(strValue));
                break;
            case MONTHS:
                ret = ret.plusMonths(Integer.valueOf(strValue));
                break;
            case YEARS:
                ret = ret.plusYears(Integer.valueOf(strValue));
                break;
            case WITHDAYOFMONTH:
                ret = ret.withDayOfMonth(Integer.valueOf(strValue));
                break;
            case WITHDAYOFWEEK:
                ret = ret.withDayOfWeek(Integer.valueOf(strValue));
                break;
            case LASTDAYOFMONTH:
                ret = ret.dayOfMonth().withMaximumValue();
                break;
            case WITHDAYOFYEAR:
                ret = ret.withDayOfYear(Integer.valueOf(strValue));
            default:
                break;
            }
        }
    }
    return ret;
}

From source file:org.efaps.esjp.common.uiform.Field_Base.java

License:Apache License

/**
 * Method to get a Datevalue for a field on create to set a more "intelligent"
 * value like "monday of current week" etc.
 * Properties:/*from w  w  w .ja v a  2  s.  c o m*/
 * <table>
 *  <tr><th>Property</th><th>Value</th><th>Description</th></tr>
 *  <tr><td>withDayOfWeek</td><td>1,2,3,4,5,6,7</td>
 *      <td>the Integer represents on of the weekdays starting with Monday, Tuesday...</td></tr>
 *  <tr><td>withDayOfMonth</td><td>Integer</td><td>day of month</td></tr>
 *  <tr><td>minusDays</td><td>Integer</td><td>days to subtract</td></tr>
 *  <tr><td>plusDays</td><td>Integer</td><td>days to add</td></tr>
 *  <tr><td>minusWeeks</td><td>Integer</td><td>weeks to subtract</td></tr>
 *  <tr><td>plusWeeks</td><td>Integer</td><td>weeks to add</td></tr>
 * </table>
 *
 * @param _parameter Parameter as passed by the eFaps API
 * @return ReturnValue containing the date
 * @throws EFapsException on error
 */
public Return getDefault4DateFieldValue(final Parameter _parameter) throws EFapsException {
    final Return ret = new Return();
    final TargetMode mode = (TargetMode) _parameter.get(ParameterValues.ACCESSMODE);
    final Collection<TargetMode> modes = new ArrayList<>();
    for (final String aMode : analyseProperty(_parameter, "TargetMode").values()) {
        modes.add(EnumUtils.getEnum(TargetMode.class, aMode.toUpperCase()));
    }
    if ((TargetMode.CREATE.equals(mode) || TargetMode.EDIT.equals(mode))
            && (modes.isEmpty() || modes.contains(mode))) {
        DateTime date = new DateTime();
        if (containsProperty(_parameter, "withDayOfWeek")) {
            final int dayOfWeek = Integer.parseInt(getProperty(_parameter, "withDayOfWeek"));
            date = date.withDayOfWeek(dayOfWeek);
        }
        if (containsProperty(_parameter, "withDayOfMonth")) {
            final int dayOfMonth = Integer.parseInt(getProperty(_parameter, "withDayOfMonth"));
            date = date.withDayOfMonth(dayOfMonth);
        }
        if (containsProperty(_parameter, "days")) {
            final int days = Integer.parseInt(getProperty(_parameter, "days"));
            date = date.plusDays(days);
        }
        if (containsProperty(_parameter, "weeks")) {
            final int weeks = Integer.parseInt(getProperty(_parameter, "weeks"));
            date = date.plusWeeks(weeks);
        }
        if (containsProperty(_parameter, "months")) {
            final int months = Integer.parseInt(getProperty(_parameter, "months"));
            date = date.plusMonths(months);
        }
        if (containsProperty(_parameter, "years")) {
            final int years = Integer.parseInt(getProperty(_parameter, "years"));
            date = date.plusYears(years);
        }
        ret.put(ReturnValues.VALUES, date);
    }
    return ret;
}

From source file:org.efaps.esjp.common.uitable.MultiPrint_Base.java

License:Apache License

/**
 * @param _field Field the date is wanted for
 * @return datetime array//from  w ww  .  j a  va  2s .  com
 * @throws EFapsException on error
 */
protected Object[] getFilter(final Field _field) throws EFapsException {
    Object[] ret = null;
    final String filter = _field.getFilter().getDefaultValue();
    if (filter != null) {
        final String[] parts = filter.split(":");
        final String range = parts[0];
        final int fromSub = parts.length > 1 ? Integer.parseInt(parts[1]) : 0;
        final int rangeCount = parts.length > 2 ? Integer.parseInt(parts[2]) : 1;
        DateTime dateFrom = new DateTime();
        DateTime dateTo = new DateTime();
        if (range != null) {
            final FilterDefault def = FilterDefault.valueOf(range.toUpperCase());
            // to get a timezone dependent DateTim
            DateTime tmp = DateTimeUtil.translateFromUI(new DateTime()).withTimeAtStartOfDay();
            switch (def) {
            case TODAY:
                dateFrom = tmp.toDateTime().minusDays(fromSub).minusMinutes(1);
                dateTo = dateFrom.plusDays(rangeCount).plusSeconds(1);
                ret = new DateTime[] { dateFrom, dateTo };
                break;
            case WEEK:
                // the first of the current week
                tmp = tmp.minusDays(tmp.getDayOfWeek() - 1);
                dateFrom = tmp.minusWeeks(fromSub).minusMinutes(1);
                dateTo = tmp.plusWeeks(rangeCount);
                ret = new DateTime[] { dateFrom, dateTo };
                break;
            case MONTH:
                // the first of the current month
                tmp = tmp.minusDays(tmp.getDayOfMonth() - 1);
                // substract the month and a minute before
                dateFrom = tmp.minusMonths(fromSub).minusMinutes(1);
                // add the month
                dateTo = tmp.plusMonths(rangeCount);
                ret = new DateTime[] { dateFrom, dateTo };
                break;
            case YEAR:
                tmp = tmp.minusDays(tmp.getDayOfYear() - 1);
                dateFrom = tmp.minusYears(fromSub).minusMinutes(1);
                dateTo = tmp.plusYears(rangeCount);
                ret = new DateTime[] { dateFrom, dateTo };
                break;
            case ALL:
                ret = new String[] { "*" };
                break;
            case NONE:
                break;
            default:
                ret = new String[] { range + "*" };
                break;
            }
        }
    }
    return ret;
}

From source file:org.emonocot.model.registry.Resource.java

License:Open Source License

public void updateNextAvailableDate() {
    if (getScheduled()) {
        DateTime nextAvailableDate = new DateTime();
        switch (getSchedulingPeriod()) {
        case YEARLY:
            nextAvailableDate = nextAvailableDate.plusYears(1);
            break;
        case MONTHLY:
            nextAvailableDate = nextAvailableDate.plusMonths(1);
            break;
        case WEEKLY:
            nextAvailableDate = nextAvailableDate.plusWeeks(1);
            break;
        case DAILY:
            nextAvailableDate = nextAvailableDate.plusDays(1);
            break;
        default://from w  w  w.  java2 s.  com
            nextAvailableDate = null;
        }

        setNextAvailableDate(nextAvailableDate);
    }
}

From source file:org.emonocot.portal.view.Functions.java

License:Open Source License

public static String formatDateRange(String dateRange) {

    Matcher matcher = pattern.matcher(dateRange);

    if (matcher.matches()) {
        String beginningString = matcher.group(1);
        String endString = matcher.group(2);

        DateTime beginning = solrDateTimeFormatter.parseDateTime(beginningString);
        DateTime end = solrDateTimeFormatter.parseDateTime(endString);
        Integer gap = Integer.parseInt(matcher.group(3));
        String increment = matcher.group(4);
        DateTimeFormatter dateTimeFormatter = null;
        switch (increment) {
        case "DAY":
            end = end.plusDays(gap);//from   w w w.j  a va 2  s. c o m
            dateTimeFormatter = DateTimeFormat.shortDate();
            break;
        case "WEEK":
            end = end.plusWeeks(gap);
            dateTimeFormatter = DateTimeFormat.shortDate();
            break;
        case "MONTH":
            end = end.plusMonths(gap);
            dateTimeFormatter = DateTimeFormat.forPattern("yyyy/MM");
            break;
        case "YEAR":
            end = end.plusYears(gap);
            dateTimeFormatter = DateTimeFormat.forPattern("yyyy");
            break;
        }

        return dateTimeFormatter.print(beginning) + " - " + dateTimeFormatter.print(end);

    } else {
        return dateRange;
    }

}

From source file:org.entcore.feeder.timetable.edt.EDTImporter.java

License:Open Source License

private JsonObject generateCourse(int startCourseWeek, int endCourseWeek, BitSet enabledItems,
        List<JsonObject> items, JsonObject entity) {
    final int day = Integer.parseInt(entity.getString("Jour"));
    final int startPlace = Integer.parseInt(entity.getString("NumeroPlaceDebut"));
    final int placesNumber = Integer.parseInt(entity.getString("NombrePlaces"));
    DateTime startDate = startDateWeek1.plusWeeks(startCourseWeek - 1).plusDays(day - 1);
    DateTime endDate = startDate.plusWeeks(endCourseWeek - startCourseWeek);
    startDate = startDate.plusSeconds(slots.get(entity.getString("NumeroPlaceDebut")).getStart());
    endDate = endDate.plusSeconds(slots.get(String.valueOf((startPlace + placesNumber - 1))).getEnd());
    final JsonObject c = new JsonObject().put("structureId", structureId)
            .put("subjectId", subjects.get(entity.getJsonArray("Matiere").getJsonObject(0).getString(IDENT)))
            .put("startDate", startDate.toString()).put("endDate", endDate.toString())
            .put("dayOfWeek", startDate.getDayOfWeek());

    for (int i = 0; i < enabledItems.size(); i++) {
        if (enabledItems.get(i)) {
            final JsonObject item = items.get(i);
            final String ident = item.getString(IDENT);
            switch (item.getString("itemType")) {
            case "Professeur":
                JsonArray teachersArray = c.getJsonArray("teacherIds");
                if (teachersArray == null) {
                    teachersArray = new fr.wseduc.webutils.collections.JsonArray();
                    c.put("teacherIds", teachersArray);
                }/*  w w  w  .j ava2  s.  c om*/
                final String tId = teachers.get(ident);
                if (isNotEmpty(tId)) {
                    teachersArray.add(tId);
                }
                break;
            case "Classe":
                JsonArray classesArray = c.getJsonArray("classes");
                if (classesArray == null) {
                    classesArray = new fr.wseduc.webutils.collections.JsonArray();
                    c.put("classes", classesArray);
                }
                JsonObject ci = classes.get(ident);
                if (ci != null) {
                    classesArray.add(ci.getString("className"));
                }
                break;
            case "Groupe":
                JsonArray groupsArray = c.getJsonArray("groups");
                if (groupsArray == null) {
                    groupsArray = new fr.wseduc.webutils.collections.JsonArray();
                    c.put("groups", groupsArray);
                }
                JsonObject g = groups.get(ident);
                if (g != null) {
                    groupsArray.add(g.getString("Nom"));
                }
                break;
            case "Materiel":
                JsonArray equipmentsArray = c.getJsonArray("equipmentLabels");
                if (equipmentsArray == null) {
                    equipmentsArray = new fr.wseduc.webutils.collections.JsonArray();
                    c.put("equipmentLabels", equipmentsArray);
                }
                final String eId = equipments.get(ident);
                if (isNotEmpty(eId)) {
                    equipmentsArray.add(eId);
                }

                break;
            case "Salle":
                JsonArray roomsArray = c.getJsonArray("roomLabels");
                if (roomsArray == null) {
                    roomsArray = new fr.wseduc.webutils.collections.JsonArray();
                    c.put("roomLabels", roomsArray);
                }
                final String rId = rooms.get(ident);
                if (isNotEmpty(rId)) {
                    roomsArray.add(rId);
                }
                break;
            case "Personnel":
                JsonArray personnelsArray = c.getJsonArray("personnelIds");
                if (personnelsArray == null) {
                    personnelsArray = new fr.wseduc.webutils.collections.JsonArray();
                    c.put("personnelIds", personnelsArray);
                }
                final String pId = personnels.get(ident);
                if (isNotEmpty(pId)) {
                    personnelsArray.add(pId);
                }
                break;
            }
        }
    }
    try {
        c.put("_id", JsonUtil.checksum(c));
    } catch (NoSuchAlgorithmException e) {
        log.error("Error generating course checksum", e);
    }
    return c;
}

From source file:org.entcore.feeder.timetable.udt.UDTImporter.java

License:Open Source License

private JsonObject generateCourse(String start, String end, JsonObject entity, int periodWeek,
        int endPeriodWeek, boolean theoretical) {
    JsonObject ficheTStart = fichesT.get(start);
    JsonObject ficheTEnd = fichesT.get(end);
    if (ficheTStart == null || ficheTEnd == null) {
        report.addError("invalid.ficheT");
        return null;
    }//from  ww w  .  j  a v a2s . co m
    final Slot slotStart = slots.get(ficheTStart.getString("jour")
            + padLeft(ficheTStart.getString("demi_seq"), 2, '0') + ficheTStart.getString("site"));
    final Slot slotEnd = slots.get(ficheTEnd.getString("jour")
            + padLeft(ficheTEnd.getString("demi_seq"), 2, '0') + ficheTEnd.getString("site"));
    if (slotStart == null || slotEnd == null) {
        report.addError("invalid.slot");
        return null;
    }
    final int day = Integer.parseInt(ficheTStart.getString("jour"));
    final int cpw = (periodWeek < startDateWeek1.getWeekOfWeekyear()) ? periodWeek + maxYearWeek : periodWeek;
    DateTime startDate = startDateWeek1.plusWeeks(cpw - startDateWeek1.getWeekOfWeekyear()).plusDays(day - 1);
    while (holidays.contains(startDate)) {
        startDate = startDate.plusWeeks(1);
    }
    startDate = startDate.plusSeconds(slotStart.getStart());
    //final int epw = periods.get(periodWeek);
    final int cepw = (endPeriodWeek < startDateWeek1.getWeekOfWeekyear()) ? endPeriodWeek + maxYearWeek
            : endPeriodWeek;
    DateTime endDate = startDateWeek1.plusWeeks(cepw - startDateWeek1.getWeekOfWeekyear()).plusDays(day - 1);
    while (holidays.contains(endDate)) {
        endDate = endDate.minusWeeks(1);
    }
    endDate = endDate.plusSeconds(slotEnd.getEnd());
    if (endDate.isBefore(startDate)) {
        log.error("endDate before start date. cpw : " + cpw + ", cepw : " + cepw + ", startDateWeek1 : "
                + startDateWeek1 + ", endPeriodOfWeek : " + endPeriodWeek);
    }
    final Set<String> ce = coens.get(start);
    JsonArray teacherIds;
    if (ce != null && ce.size() > 0) {
        teacherIds = new fr.wseduc.webutils.collections.JsonArray(new ArrayList<>(ce));
    } else {
        teacherIds = new fr.wseduc.webutils.collections.JsonArray();
    }
    final String pId = teachers.get(entity.getString("prof"));
    if (isNotEmpty(pId)) {
        teacherIds.add(pId);
    }

    final JsonObject c = new JsonObject().put("structureId", structureId).put("startDate", startDate.toString())
            .put("endDate", endDate.toString()).put("dayOfWeek", day).put("teacherIds", teacherIds)
            .put("theoretical", theoretical);
    final String sId = subjects.get(entity.getString("mat"));
    if (isNotEmpty(sId)) {
        c.put("subjectId", sId);
    }
    final String rId = rooms.get(entity.getString("salle"));
    if (isNotEmpty(rId)) {
        c.put("roomLabels", new fr.wseduc.webutils.collections.JsonArray().add(rId));
    }
    final JsonObject cId = classes.get(entity.getString("div"));
    if (cId != null && isNotEmpty(cId.getString("className"))) {
        c.put("classes", new fr.wseduc.webutils.collections.JsonArray().add(cId.getString("className")));
    }

    JsonArray groups;
    if (isNotEmpty(entity.getString("rgpmt")) || isNotEmpty(entity.getString("gpe"))) {
        groups = new fr.wseduc.webutils.collections.JsonArray();
        c.put("groups", groups);
        String name = regroup.get(entity.getString("rgpmt"));
        if (isNotEmpty(name)) {
            groups.add(name);
        }
        String gName = entity.getString("gpe");
        if (isNotEmpty(gName)) {
            groups.add(entity.getString("div") + " Gr " + gName);
        }
    }
    try {
        c.put("_id", JsonUtil.checksum(c));
    } catch (NoSuchAlgorithmException e) {
        log.error("Error generating course checksum", e);
    }
    return c;
}

From source file:org.fenixedu.spaces.domain.occupation.config.ExplicitConfigWithSettings.java

License:Open Source License

private static int getNthDayOfWeek(DateTime when) {
    DateTime checkpoint = when;
    int whenDayOfWeek = checkpoint.getDayOfWeek();
    int month = checkpoint.getMonthOfYear();
    checkpoint = checkpoint.withDayOfMonth(1);
    checkpoint = checkpoint.withDayOfWeek(whenDayOfWeek);
    checkpoint = checkpoint.plusWeeks(month - checkpoint.getDayOfMonth());
    int i = 0;//from   ww  w .java  2 s  . c o  m
    while (checkpoint.getMonthOfYear() == month && !checkpoint.isEqual(when)) {
        checkpoint = checkpoint.plusWeeks(1);
        i++;
    }
    return i;
}

From source file:org.fenixedu.spaces.domain.occupation.config.MonthlyConfig.java

License:Open Source License

private int getNthDayOfWeek(DateTime when) {
    DateTime checkpoint = when;
    int whenDayOfWeek = checkpoint.getDayOfWeek();
    int month = checkpoint.getMonthOfYear();
    checkpoint = checkpoint.withDayOfMonth(1);
    checkpoint = checkpoint.withDayOfWeek(whenDayOfWeek);
    checkpoint = checkpoint.plusWeeks(month - checkpoint.getDayOfMonth());
    int i = 0;//w  ww .  j a  v  a  2 s.c  o  m
    while (checkpoint.getMonthOfYear() == month && !checkpoint.isEqual(when)) {
        checkpoint = checkpoint.plusWeeks(1);
        i++;
    }
    return i;
}

From source file:org.fenixedu.spaces.domain.occupation.config.MonthlyConfig.java

License:Open Source License

private DateTime getNextNthdayOfWeek(DateTime when, int nthdayOfTheWeek, int dayOfTheWeek) {
    DateTime checkpoint = when;
    int month = checkpoint.getMonthOfYear();
    checkpoint = checkpoint.withDayOfMonth(1);
    checkpoint = checkpoint.plusWeeks(month - checkpoint.getMonthOfYear());
    int i = nthdayOfTheWeek;
    if (i > 3) {
        DateTime lastDayOfMonth = checkpoint.dayOfMonth().withMaximumValue();
        lastDayOfMonth = lastDayOfMonth.withDayOfWeek(dayOfTheWeek);
        return lastDayOfMonth.plusWeeks(month - lastDayOfMonth.getMonthOfYear());
    } else {//  w w  w.  j a  v  a  2  s .  co m
        return checkpoint.plusWeeks(nthdayOfTheWeek);
    }
}