List of usage examples for org.joda.time DateTime plusWeeks
public DateTime plusWeeks(int weeks)
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); } }